2012-01-16 44 views
0

我在嘗試將子視圖添加到viewDidLoad上的UIScrollView時遇到問題。IOS在viewDidLoad上添加子視圖

我使用此代碼編程的UIImageViews的添加到滾動視圖:

- (void)viewDidLoad { 
[super viewDidLoad]; 
NSInteger const_width = 100; 
NSInteger numberOfViews = 4; 
CGRect theFrame = [self.scrollView frame]; 
for (int i = 0; i < numberOfViews; i++) { 
    CGFloat xOrigin = i * const_width; 
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(xOrigin,theFrame.origin.y,const_width,110)]; 
    UIImage *image = [UIImage imageNamed:@"cocoloco.jpg"]; 
    [imageView setImage:image]; 
    //[self.scrollView addSubview:imageView]; 
    imageView.tag = i; 
    CGRect rect = imageView.frame; 
    rect.size.height = 110; 
    rect.size.width = 110; 
    imageView.frame = rect; 
    [self.scrollView addSubview:imageView]; 

} 

self.scrollView.contentSize = CGSizeMake(const_width * numberOfViews, 110);} 

,但我得到的當前觀點:

enter image description here

似乎滾動視圖幀需要它的位置無論3個黃色選項卡(這是一個特殊的TabBarController),所以我從UIScrollView得到一個錯誤的框架起源,因此UIImageViews錯誤定位。

有什麼想法?

回答

0

我不知道如何做到這一點,但將框架的高度添加到矩形的「Y」位置。事情是這樣的:

UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(xOrigin,theFrame.origin.y + (theFrame.height),const_width,110)]; 
+0

但問題是UIScrollView的框架沒有考慮到它在tabBarController(導航欄下方的3個黃色標籤)內。謝謝:) – xger86x 2012-01-16 16:08:37

0

要獲得在頂部導航欄下方的滾動視圖,嘗試

self.scrollview.autoresizingMask = UIViewAutoresizingFlexibleTopMargin; 

然後通過設置它在滾動視圖起源和高度產地基本位置滾動視圖下表:

CGRect frame = tableView.frame; 
frame.origin.y = self.scrollview.frame.origin.y + self.scrollview.frame.size.height; 
tableView.frame = frame; 
+0

不,我需要黃色標籤下面的scrollview ... – xger86x 2012-01-16 19:16:12

+0

別擔心我終於找到了解決方案 – xger86x 2012-01-27 18:10:26

0

你應該將你的UI到任何大小調整或佈局 - (空)layoutSubviews方法,這應該正確地排序您的問題。

相關問題