2012-01-16 3 views
0

У меня проблема, когда я пытаюсь добавить subviews в UIScrollView на viewDidLoad.IOS Добавить subview в viewDidLoad

Я использую этот код, чтобы программно добавить UIImageViews к Scrollview:

- (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

0

Чтобы получить Scrollview ниже навигационной панели в верхней части, попробуйте

self.scrollview.autoresizingMask = UIViewAutoresizingFlexibleTopMargin; 

Затем поместите таблицу ниже Scrollview, установив его происхождение базы на Scrollview происхождения и высоты:

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

nop, мне нужно прокрутку ниже желтых вкладок ... – xger86x

+0

не волнуйтесь, я наконец нашел решение – xger86x

0

Вы должны переместить любое изменение размера или макет вашего пользовательского интерфейса к - (недействительными) метод layoutSubviews и это должно правильно сортировать вашу проблему.