Uitext Content Size в UI Scroll View, текст внизу обрезается
У меня есть UIScroll, внутри которого есть uitextview.
Мои приложения выглядят так:
rootviewcontroller
-> PhoneContentController
(UIScrollView
а также PageControl
) -> DetailController
(UITextView
, UIWebView
, UILabel
).
Мой поток таков:
Задавать UIScrollView
размер по умолчанию -> вызов DetailController
(расчет UITextView
и другая страница внутри него в viewDidLoad
) -> PhoneContentController
получить общий размер высоты от DetailController
-> Изменить высоту UIScrollView
Это код в PhoneContentController
(loadSCrollViewWithPage
):
scrollView.contentSize = CGSizeMake(scrollView.frame.size.width * kNumberOfPages, [detailController.getTotalHeight]);
Код в подробном контроллере (viewDidLoad
):
summaryBlogParsed = [summaryBlogParsed stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
[self.itemSummaryText setText:summaryBlogParsed];
CGRect frameTextView = self.itemSummaryText.frame;
frameTextView.size.height = self.itemSummaryText.contentSize.height;
self.itemSummaryText.frame = frameTextView;
Этот код в DetailController
getTotalHeight
:
CGRect cgRect = [[UIScreen mainScreen] bounds];
CGFloat scrollFrame = (cgRect.size.height/2) + itemSummaryText.frame.size.height;
return scrollFrame;
Я могу прокрутить вид прокрутки, но textview
не загружать всю строку. как только половина, но я могу прокрутить вниз, но с пустыми страницами:(.
Кто-нибудь может мне помочь?
Спасибо
2 ответа
Установите размер содержимого прокрутки просмотра с помощью этой функции.
-(void)setContentSizeOfScrollView:(UIScrollView*)scroll
{
CGRect rect = CGRectZero;
for(UIView * vv in [scroll subviews])
{
rect = CGRectUnion(rect, vv.frame);
}
[scroll setContentSize:CGSizeMake(rect.size.width, rect.size.height)];
}
после добавления всех элементов управления в представление прокрутки вызовите эту функцию и передайте yourScrollView
в качестве аргумента. Надеюсь, что это поможет вам.........
По словам Apple... При отладке проблем с текстовыми представлениями обратите внимание на эту распространенную ошибку:
Размещение текстового представления внутри представления прокрутки. Текстовые представления обрабатывают собственную прокрутку. Вы не должны вставлять объекты текстового представления в представления прокрутки. Если вы это сделаете, это может привести к неожиданному поведению, потому что события касания для двух объектов могут быть перепутаны и неправильно обработаны.