Как мешать UITextView прокрутить при вводе его

То, что вы делаете, пытаясь обнаружить мобильное устройство, слишком близко приближается к концепции IMO «анализ кода браузера». Скорее всего, было бы намного лучше определить некоторые функции. Такие библиотеки, как http://www.modernizr.com/ , могут помочь с этим.

Например, где проходит граница между мобильным и немобильным? С каждым днем ​​оно становится все более размытым.

29
задан DShah 1 January 2012 в 13:22
поделиться

2 ответа

Вот как ведет себя UITextView согласно инженеру Apple, это предназначено, а UITextView предназначен для текста, который имеет высоту не менее нескольких строк. Здесь нет никакого решения, используйте вместо него UITextField или увеличьте UITextView как минимум до 3 строк в высоту.

16
ответ дан 28 November 2019 в 00:49
поделиться

UITextView является подклассом UIScrollView, поэтому у него есть настраиваемое свойство contentInset. К сожалению, если вы попытаетесь изменить contentInset в экземпляре UITextView, вставка нижнего края всегда будет сброшена до 32. Я сталкивался с этим раньше с короткими фреймами UITextView и обнаружил, что это проблема. Я подозреваю, что это является причиной вашей проблемы, но вы должны проверить contentInset вашего текстового представления в отладчике.

Обходной путь / решение прост: подкласс UITextView и переопределите метод contentInset, чтобы он всегда возвращал UIEdgeInsetZero. Попробуйте это:

//
// BCTextView
//
// UITextView seems to automatically be resetting the contentInset
// bottom margin to 32.0f, causing strange scroll behavior in our small
// textView.  Maybe there is a setting for this, but it seems like odd behavior.
// override contentInset to always be zero.
//
@interface BCZeroEdgeTextView : UITextView
@end

@implementation BCZeroEdgeTextView

- (UIEdgeInsets) contentInset { return UIEdgeInsetsZero; }

@end 
62
ответ дан 28 November 2019 в 00:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: