Каждый раз, когда этот вопрос задают на SO (и в других местах), ответом является «убедитесь, что contentSize больше размера представления, и установите его в viewDidLoad!»Да, я делаю это, так в чем же еще проблема?
В loadView моего контроллера: у меня есть эти строки для настройки моего представления:
descriptionView = [[DetailDescriptionView alloc] initWithFrame:CGRectMake(160, 60, 160, 180)];
descriptionScrollView = [[DetailDescriptionScrollView alloc] initWithFrame:CGRectInset(CGRectMake(0, 0, 160, 180), 5, 5)];
[descriptionView addSubview:descriptionScrollView];
[self.view addSubview:descriptionView];
Затем в viewDidLoad, У меня есть этот код:
[descriptionScrollView setDescriptionText:@"<lots of text that will require scrolling>"];
NSUInteger contentHeight = <** calculations on the text to determine height **>
[descriptionScrollView setContentSize:CGSizeMake(descriptionScrollView.frame.size.width, contentHeight)];
NSLog(@"ContentSize: %@", NSStringFromCGSize(descriptionScrollView.contentSize));
NSLog(@"DescriptionScrollView Size: %@", NSStringFromCGRect(descriptionScrollView.frame));
Эти NSLogs подтверждают, что все должно быть хорошо:
ContentSize: {150, 330}
DescriptionScrollView Size: {{5, 5}, {150, 170}}
Когда дело доходит до фактического рисования текста, я использую Core Graphicsв методе drawRect: метод прокрутки.Вот соответствующий фрагмент:
CGRect descriptionTextBox = CGRectMake(self.frame.origin.x, 20, self.frame.size.width - 10, 330);
[self.descriptionText drawInRect:descriptionTextBox withFont:[UIFont fontWithName:kMediumFontName size:kFontSizeMicro]];
Я думаю, что это охватывает то, что я пытаюсь сделать.Прокрутка просто не происходит.Кто-нибудь может порекомендовать тактику, чтобы выяснить, что нужно сделать, чтобы это сработало?