如何在UITextView中禁用选择功能?

时间:2010-08-03 15:05:49

标签: iphone interface-builder uitextview subclassing

我想在我的iPhone应用程序中创建一个文本显示区域(UILabel或UITextView),其中(1)允许滚动,(2)不允许选择。我尝试了以下技术失败:

  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:,但显然这个函数在点击事件之后被称为 - 而不是之前。
  4. 有没有人知道如何在UITextView中禁用文本选择界面,而不禁用滚动?

1 个答案:

答案 0 :(得分:1)

选择选项编号2,但将numberOfLines上的UILabel属性设置为0。这会将行数设置为“无限制”,并阻止文本的垂直居中。

不要忘记将lineBreakMode属性设置为UILineBreakModeWordWrap,这样您的文字就不会在UILabel旁边运行。