IOS Добавить подпредставление на viewDidLoad - PullRequest
0 голосов
/ 16 января 2012

У меня проблема, когда я пытаюсь добавить подпредставления в UIScrollView на 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 расположены неправильно.

Есть идеи?

Ответы [ 3 ]

0 голосов
/ 16 января 2012

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

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 голосов
/ 07 февраля 2012

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

0 голосов
/ 16 января 2012

Я не знаю точно, как это сделать, но добавлю высоту рамки к позиции Y вашего прямоугольника.Как то так:

UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(xOrigin,theFrame.origin.y + (theFrame.height),const_width,110)];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...