Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
UITextView-截断iOS 6上显示省略号的文本(使用自动布局)_Ios_Uitextview_Autolayout - Fatal编程技术网

UITextView-截断iOS 6上显示省略号的文本(使用自动布局)

UITextView-截断iOS 6上显示省略号的文本(使用自动布局),ios,uitextview,autolayout,Ios,Uitextview,Autolayout,我有一个UITextView,它显示的文本长度超过了文本视图框架的长度。我希望通过在iOS 6上显示省略号来截断文本 在iOS 7上,我可以通过使用以下代码实现这一点 textView.textContainer.maximumNumberOfLines = 0; textView.textContainer.lineBreakMode = NSLineBreakByTruncatingTail; 在iOS 6上,我可以截断文本,但它不显示省略号 问题出现在iOS6上,属性textContai

我有一个
UITextView
,它显示的文本长度超过了文本视图框架的长度。我希望通过在iOS 6上显示省略号来截断文本

在iOS 7上,我可以通过使用以下代码实现这一点

textView.textContainer.maximumNumberOfLines = 0;
textView.textContainer.lineBreakMode = NSLineBreakByTruncatingTail;
在iOS 6上,我可以截断文本,但它不显示省略号

问题出现在iOS6上,属性
textContainer
不可用

请注意:

  • 我使用的是自动布局,因此在设置文本时我不知道帧的大小。帧大小的设置要晚得多
问题


在iOS 6上如何显示省略号?

在iOS 6中没有直接的方法。但是你可以试试下面的方法

int maximumCharacters = 200;
if([str length] > maximumCharacters) {
    str = [str substringToIndex:maxCharacters];
}

添加省略号:

谢谢大家,@matt帮我找到了解决方案

我认为最适合解决我的问题的方法是使用UILabel

使用UILabel和Autolayout时我遇到的唯一问题是,当文本只有一行时,文本垂直居中对齐,看起来很奇怪

解决方案(自动布局和UILabel)

  • 使用UILabel
  • preferredMaxLayoutWidth
    设置为所需值这是我真正缺少的
  • 将高度约束设置为小于或等于所需值
  • 设置文本和更改方向后使用
    sizeToFit
  • 因此,如果sizeToFit返回的高度小于最大高度,则将采用该尺寸,否则将采用步骤3中设置的最大高度


    这在iOS 6和iOS 7上都有效

    我看到您正在截断文本视图。我已对问题进行了编辑,以便更具体地说明我的问题。问题是iOS 6中没有显示省略号。您在iOS 6上看到了什么行为?可能是截图?是的,我知道,但您使用的是NSLineBreakByTruncingTail,可以做到这一点。将样式更改为类似WordWrapt的样式如果您愿意自己绘制文本或使用UILabel(而不是使用UITextView),这将非常容易。在您的用例中有这种可能性吗?