В viewDidLoad я добавляю кнопки на представление прокрутки в цикле следующим образом:Как горизонтально центрировать содержимое прокрутки?
for (int i = 0; i < self.topics.count; i++) {
id obj = self.topics[i];
if ([obj isKindOfClass:[TRBTaxonomy class]]) {
TRBTaxonomy *topic = obj;
UIButton *prevTopicButton = nil;
if (i > 0) {
prevTopicButton = buttons[i-1];
}
//Create topic divider
UILabel *topicsDividerLabel =[[UILabel alloc] init];
[topicsDividerLabel setBackgroundColor:[UIColor lightGrayColor]];
[topicsDividerLabel setTranslatesAutoresizingMaskIntoConstraints:NO];
UIButton *topicButton = [UIButton buttonWithType:UIButtonTypeSystem];
topicButton.translatesAutoresizingMaskIntoConstraints = NO;
[topicButton setTitle:topic.name forState:UIControlStateNormal];
[topicButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
topicButton.titleLabel.font = [UIFont fontWithName:(NSString*)[[TRBUtils fonts] valueForKey:@"TopicsBarFontName"] size:15];
topicButton.titleLabel.textAlignment = NSTextAlignmentLeft;
[topicButton addTarget:self action:@selector(topicTapped:) forControlEvents:UIControlEventTouchUpInside];
[self.scrollView addSubview:topicButton];
}
}
Затем, в конце цикла я стараюсь, чтобы получить ширину содержимого вида прокрутки, чтобы поместить его в центр горизонтальной в представлении прокрутки:
CGFloat newContentOffsetX = (self.scrollView.contentSize.width/2) - (self.scrollView.bounds.size.width/2);
self.scrollView.contentOffset = CGPointMake(newContentOffsetX, 0);
, но в данный момент self.scrollView.contentSize.width возвращает 0
Когда я получаю содержание от viewDidAppear го ere - это контент, и все работает нормально, но есть видимое мигание от перемещения содержимого прокрутки слева от центра.
Как избавиться от этого моргания? Почему self.scrollView.contentSize.width равен нулю в viewDidLoad и viewWillAppear, но не в viewDidAppear?