Я сделал один в прокрутке. Я рассчитал размер рамки каждого элемента из этого метода:
- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode
Я сохранил промежуточный итог размера y, добавив его после каждой метки. В конце, если представление прокрутки было больше определенного размера (длина моей страницы), я назначил этот размер представлению прокрутки, добавив немного в конце, чтобы он не ударялся о дно.
Вот код:
int currentYPos;
CGSize maximumSize = CGSizeMake(300, 9999);
[scrollView setCanCancelContentTouches:NO];
scrollView.indicatorStyle = UIScrollViewIndicatorStyleDefault;
scrollView.clipsToBounds = YES;
scrollView.scrollEnabled = YES;
scrollView.pagingEnabled = NO;
// set the title frame size
self.titleLabel.text = self.title;
CGSize titleSize = [self.titleLabel.text sizeWithFont:self.titleLabel.font
constrainedToSize:maximumSize
lineBreakMode:self.titleLabel.lineBreakMode];
currentYPos = titleSize.height + 20;
CGRect titleFrame = CGRectMake(10, 0, 300, currentYPos);
self.titleLabel.frame = titleFrame;
Обратите внимание, что многие свойства titleLabel были установлены на метке в IB.