[英]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.