簡體   English   中英

將scrollView添加到.xib文件中的視圖

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM