2010-09-24 6 views
1

У меня есть UIScrollview с IBOutlet, сопоставленный ganttScroller. В этом UIScrollView есть UIView. Я сделал UIView в ИБ и его ширина равна 100.UIButtons в UIView

Затем я начинаю добавлять кнопки к этой UIView (отображенной через IBOutlet scrollContent)

float test = [scrollContent frame].size.width; 
for (int i=0; i<15; i++) { 
     UIButton *showButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 

     showButton.frame = CGRectMake(55.0 * i, 
             50.0, 
             50.0, 
             20.0); 
     [showButton setTitle:NSLocalizedString(@"test", @"") forStates:UIControlStateNormal]; 
     [scrollContent addSubview:showButton]; 
    } 
    test = [scrollContent frame].size.width; 
    [scrollContent sizeToFit]; 
    test =[scrollContent frame].size.width; 

В начале я проверить размер моего scrollContent и это действительно 100 (проверено «тест» в отладчике), после добавления кнопок это снова 100, а после sizeToFit все равно 100 (я бы ожидал намного большего, поскольку все эти кнопки были добавлены ... Кнопки отображаются правильно! Мне нужен правильный размер для моего gantScroller (UIScrollView)

Что не так?

ответ

1

Не думаю, что -[UIView sizeToFit] принимает во внимание свои подсмотры. Вам нужно просто вычислить правильную ширину и назначить ее кадру представления. Затем вам также необходимо установить свойство прокрутки contentSize, чтобы оно прокручивалось правильно.

Возможно, причина, по которой вы видите все кнопки, несмотря на то, что контейнер слишком мал, заключается в том, что UIViews делают не по умолчанию для своих подзонов.

+0

Ок, thx Я думал, что contentSize вычислит, что для меня, какой метод мне нужен, чтобы вычислить правильную ширину? – Glenn

+0

Когда в вашем конкретном случае это 'CGRect frame = scrollContent.frame; frame.size.width = 14 * 55 + 50; scrollContent.frame = frame; scrollView.contentSize = frame.size; ' –

Смежные вопросы