2012-05-22 2 views
1

У меня есть UITextView с contentSize свойства установлено в очень большое значение 1000, ширина UITextView 200, прокрутка включена, горизонтальная подпрыгивание включена и вертикальная подпрыгивание отключена, но это UITextView по-прежнему прокручивается по вертикали на большом тексте. Как я могу заставить горизонтальную прокрутку?как заставить горизонтальную прокрутку только на UITextView

p.s. the solution here не работает.

ответ

2

Я пробовал много различных способов иметь горизонтальную функциональность прокрутки, чтобы работать, как ожидалось, но не один из этих методов работали для меня, поэтому я создал UIScrollView и добавил UILabel как subview в представлении прокрутки и динамическую установку ширины ярлыка фрейма в соответствии с его текстом и текстовым шрифтом, после чего я установил contentSize в виде прокрутки равным новой ширине рамки метки & height. Используя этот метод, вы будете иметь горизонтальный прокручиваемый текст.

5

UITextView является подклассом - UIScrollView. Таким образом, вы можете использовать метод ScrollViewDelegate для его отключения.

Применение -

- (void)scrollViewDidScroll:(id)aScrollView 
{ 
    [aScrollView setContentOffset:CGPointMake([scrollView contentOffset].x, 0.0)]; 
} 
+1

это не сработало ... еще прокручивается по вертикали. .. – JAHelia

+0

работает как шарм по вертикали ... –

1

Используя советы JAHelia, это работает для меня:

self.dishNameLabel.text = @"Here is some very longgggg text to test with"; 
float width = ceil([self.dishNameLabel.text sizeWithAttributes:@{NSFontAttributeName: [UIFont fontWithName:@"WorkSans-SemiBold" size:15.0]}].width); 
self.dishNameLabel.frame = CGRectMake(self.dishNameLabel.frame.origin.x, self.dishNameLabel.frame.origin.y, width, self.dishNameLabel.frame.size.height); 
self.dishNameScrollView.contentSize = CGSizeMake(width, self.dishNameScrollView.frame.size.height); 

Конечно, вам придется заменить текст и шрифт с соответствующими спецификациями

Смежные вопросы