Мое приложение имеет a UITableView
. Тот UITableView имеет представление заголовка, которое является a UIWebView
.
По умолчанию прокрутите представления, имеют их scrollsToTop
набор свойств к YES
, который позволит пользователю коснуться строки состояния для прокрутки к вершине представления прокрутки.
Когда существует два представления прокрутки, встроенные в одно представление, это у обоих есть их scrollsToTop
набор свойств к YES
, ответвление строки состояния ничего не делает.
Решение состоит в том, чтобы установить один из scrollsToTop
свойства к NO
. Это повторно позволяет коснуться строки состояния.
Теперь вот проблема: UIWebView не выставляет, это - представление прокрутки, и в результате нет никакого доступа к, он scrollsToTop
свойство. Я только хочу, чтобы табличное представление прокрутило к вершине, когда строка состояния касается, не веб-представление.
Кто-либо знает, как я могу достигнуть этого?
Вы пробовали использовать метод делегирования из UIScrollViewDelegate scrollViewShouldScrollToTop ?
Этот вопрос содержит ответ:
I не мог найти его ранее, так как его спрашивали по-другому и по немного другой теме, но результат тот же.
Итак, в результате мы прошли по вложенным представлениям, пока не нашли представление прокрутки. Я делал это раньше в других приложениях и не думал об этом в данном случае. Он должен быть безопасным для App Store, поскольку у меня есть приложения в магазине, которые используют эту идею.
Категория в UIWebView для включения или отключения прокрутки вверх:
@implementation UIWebView (UIWebViewScrollToTopAdditions)
- (void)setScrollsToTop:(BOOL)scrollsToTop
{
if ([[self subviews] count] > 0)
{
UIScrollView *scrollView = (UIScrollView *)[[self subviews] objectAtIndex:0];
if ([scrollView respondsToSelector:@selector(setScrollsToTop:)])
{
[scrollView setScrollsToTop:scrollsToTop];
}
}
}
@end