2010-08-03 62 views
0

我想在我的iPhone應用程序中創建一個文本顯示區域(UILabel或UITextView),其中(1)允許滾動和(2)不允許選擇。我曾嘗試以下方法失敗:如何禁用UITextView中的選擇功能?

  1. 基本的UILabel:不允許 滾動和裁剪文本到 底部的在屏幕上的UILabel空間。
  2. UIScrollView內的巨型UILabel:UILabel不斷將文本(垂直)置於巨型UILabel的中心,因此它經常在我的UIScrollView之外。
  3. UITextView:到目前爲止,這種方法效果最好,因爲它滾動並且不會剪裁文本。我甚至可以繼承UITextView以啓用resizing the text to fit within the textviewpassing any touch events to the superview to detect taps & swipes但是,當用戶輕擊並保留文本本身時,將出現文本選擇界面。我對這個界面不感興趣,它實際上是分散用戶的經驗。我嘗試過子類canPerformAction:withSender:,但顯然這個功能在之後被稱爲,而不是在它之前。

有誰知道如何禁用UITextView中的文本選擇界面,而不禁用滾動?

回答

1

選擇第2個選項,但將的numberOfLines屬性設置爲0。這會將行數設置爲「無限制」並防止文本的垂直居中。

不要忘記將lineBreakMode屬性設置爲UILineBreakModeWordWrap,以便您的文本不會在UILabel的邊上運行。

+0

這對我有用 - 但UIScrollView是棘手的。我仍然需要動態更改每個UILabel的大小,以便文本出現在頂部。 – Jason 2010-08-03 16:48:42