使用UITextView防止自动换行

tec*_*h74 5 iphone uitextfield

使用Iphone sdk 3.1.2

我有一个UITextView控件,启用了垂直和水平滚动.我想要显示每行文本而不包装,以便用户可以水平滚动查看它.我的问题是,即使启用水平滚动,文本包裹在iPhone屏幕的宽度即320像素.

我该如何防止包裹?

谢谢

Pat*_*gen 5

使用sizeWithFont:从NSString UIKit中添加每行的宽度,然后将UITextView的contentSize属性设置为略宽于最长行的宽度.

我在尝试这个策略时遇到了问题,这在将字符串分配给UITextView的文本属性时会出现问题.在赋值时,UITextView将设置其contentSize.width以匹配视图的宽度,并且它将在指定的文本字符串中插入换行符以将其包装到该宽度.在分配uitextview.text之后,您可以将contentSize.width设置为最长行的长度,这会在滚动视图中提供额外的空间,但新行会阻止文本填充新空间.

如果在将文本加载到视图之前设置了contentsize.width,则只有在加载文本时才会重置contentSize.

我尝试在加载之前增加文本视图的帧大小,这样可以让你的长行在屏幕边缘上运行.但是,您无法滚动,并且在缩小框架大小的那一刻,文本的换行符重新修改并再次调整contentSize.如果在视图中输入任何文本,则会出现相同的情况.

好吧,我确信uitextviews在这一点上根本不具备或不打算用于水平滚动.我没有看到如何在另一个滚动视图中嵌入文本视图也可以缓解这种情况.只需要在HTML中执行...


Tec*_*Zen 1

我认为您坚持将 UITextfield 放入滚动视图中。