[英]Add a scrollView to a view in .xib file
我有一个xib文件,其中包含一个UIView和一个UIScrollView。
在我的UIView中,我有另一个UIView(中间的while屏幕),并且我想以编程方式向其中添加scrollView。
原因是我想在其中添加一个scrollView,而我想添加一个mapView。
我所做的是这样的:
CGRect frame = self.view.bounds;
self.scrollView = [[UIScrollView alloc] initWithFrame: frame];
CGSize pagesScrollViewSize = self.view.frame.size;
self.scrollView.contentSize = CGSizeMake(pagesScrollViewSize.width * self.pageImages.count, pagesScrollViewSize.height);
我还需要为UIScrollView设置委托。
我无法使其工作。 这是我的错误:
-[UIScrollView setPageId:]: unrecognized selector sent to instance 0x7dd84e0
2012-10-06 00:56:17.373 testN[3525:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIScrollView setPageId:]: unrecognized selector sent to instance 0x7dd84e0'
我也不知道应该在哪里连接scrollView delegate
。 你能帮助我吗?
您得到的错误不在您粘贴的代码中,这是因为您可能有一些代码,例如self.scrollView.pageId = ...在其他地方
无论如何,为了帮助您实现所需的效果,您可能应该在屏幕中间将MKMapView,UIScrollView和白色UIView的IBOutlet引用添加到视图控制器。
您还可以通过以下方式在xib文件中设置scrollView的委托:右键单击它,并将委托旁边的圆圈(在“出口”下)拖到“文件所有者”(假设文件所有者是实现UIScrollViewDelegate的UIViewController)
然后在viewDidLoad中,您将得到类似这样的信息
- (void)viewDidLoad {
[super viewDidLoad];
self.scrollView.contentSize = self.scrollView.frame.size;
self.scrollView.frame = self.whiteCenterView.bounds;
[self.whiteCenterView addSubview:self.scrollView];
}
您不应该在代码中手动分配/初始化滚动视图,因为您已经在xib文件中找到了滚动视图,并且在控制器中调用viewDidLoad时将已经自动创建了滚动视图。
通过在界面构建器中添加UIScrollView,然后从那里设置委托和文件所有者,我可以成功地做到这一点。
我只需要注意,由于我要将UIView添加到情节提要中的ViewController,因此此代码不起作用:
NSArray *views = [[NSBundle mainBundle] loadNibNamed:@"OfferView" owner:self options:nil];
UIView *newPageView = [views lastObject];
我应该使用:
UIView *newPageView = [views objectAtIndex:0];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.