2010-05-13 69 views
1

我有一個UITextView,我只想讓它只能水平滾動。如何在UITextView上強制水平滾動?

基本上,當UITextView文字換行時,我希望用戶必須水平滾動才能查看其餘內容。

+0

你想,或者在很長的行中列的文本? – 2010-05-13 13:10:34

+0

我希望文本只在一行上 – 2010-05-13 13:12:11

回答

4

您可以將文本視圖的內容大小設置爲視圖的高度。只要確保內容的寬度超出了textView的框架寬度,否則它將不會滾動。

// UITextView* myTextView: gets declared somewhere... 

// The text view (subclass of a UIScrollView) won't go past its content size 
[myTextView setContentSize:CGSizeMake(width, myTextView.frame.size.height)]; 

// Just in case, if you don't want your user bouncing the view up/down 
[myTextView setAlwaysBounceVertical:NO]; 

我希望這就是你要找的。

4

解決方法是關閉UITextView本身的所有滾動選項,然後將其嵌入到另一個UIScrollView中。您可以通過在谷歌搜索這個術語「DualScrollTextView」來獲得實際的代碼。您無法強制更改contentSize來完成此操作 - 許多人都嘗試過。

0

這爲我工作:

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); 

當然,你會與你相應的規範,以取代文本和字體