невозможно добавить подпредставление для UIScrollView - PullRequest
0 голосов
/ 25 августа 2011

Я пытаюсь создать представление горизонтальной прокрутки с UILabel в качестве элементов, выполнив в viewDidLoad следующее:

for(int index=0; index < [self.category count]; index++)
    {
        UILabel *label = [[UILabel alloc] init];
        label.text = [self.category objectAtIndex:index];
        label.textColor = [UIColor blackColor];
        CGSize maximumLabelSize = CGSizeMake(100,9999);
        CGSize expectedLabelSize = [[self.category objectAtIndex:index] sizeWithFont:label.font                        
                                      constrainedToSize:maximumLabelSize 
                                          lineBreakMode:UILineBreakModeWordWrap]; 
        label.frame = CGRectMake(5+xOffset, 0, expectedLabelSize.width, 40);

        self.scrollView.contentSize = CGSizeMake(scrollWidth+xOffset,110);
        [self.scrollView addSubview:label];

        xOffset += 170;
    }

Однако я не вижу ничего, когда запускаю приложение всимулятор, что мне здесь не хватает?Я уверен, что UIScrollView подключен через IBOutlet, и я знаю, что текст существует, когда я пытался распечатать его через NSLog

ОБНОВЛЕНИЕ: И как мне проверить, на какой UILabel нажата кнопка?Я тоже хотел это знать ..

Ответы [ 3 ]

1 голос
/ 25 августа 2011

Я думаю, что вы не инициализировали xOffset = 0 перед запуском цикла. так что он принимает значение мусора и затем выполняет xOffset + = 170; инструкция.

, поэтому, пожалуйста, инициализируйте xOffset = 0;

0 голосов
/ 25 августа 2011

Если вы позиционируете метки с рамкой, вы также должны установить autoresizingMask, чтобы убедиться, что если вы позиционируете на основе портретной компоновки, но тестируете приложение в альбомной ориентации, ваши метки не будут автоматически позиционироваться вне новые границы. Кроме того, убедитесь, что autorelease эти метки, иначе у вас будет утечка памяти.

0 голосов
/ 25 августа 2011

Ваш expectedLabelSize расчет, кажется, корректирует height, оставляя width на 100. Когда вы устанавливаете frame вашего UILabel, вы просто используете эту ширину.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...