UITextView在可见文本的末尾添加...更多按钮
问题描述:
UITextView在Facebook的可见文本末尾添加...更多按钮。 如果它已经在某处提及,我很抱歉。具体而言,我很感兴趣如何计算可见文本结束的位置与包装字UITextView在可见文本的末尾添加...更多按钮
答
1。根据文本和字体检查UItextView大小:
// return the size for UITextView for both IOS7 and IOS6
-(CGSize) getSizeWithMaxLabelSize:(CGSize) maxLabelSize forTextViewWithText:(NSString *) text
{
CGSize expectedLabelSize;
CGSize maximumLabelSize = maxLabelSize;
if (SYSTEM_VERSION_GREATER_THAN(@"6.2")) {
NSDictionary *stringAttributes = [NSDictionary dictionaryWithObject:[UIFont fontWithName:@"Arial" size:EPCommentViewFontSize] forKey: NSFontAttributeName];
CGRect rect =[text boundingRectWithSize:maximumLabelSize options:NSStringDrawingUsesLineFragmentOrigin attributes:stringAttributes context:nil];
expectedLabelSize = rect.size;
expectedLabelSize.height = ceilf(expectedLabelSize.height);
expectedLabelSize.width = ceilf(expectedLabelSize.width);
} else {
expectedLabelSize = [text sizeWithFont:[UIFont fontWithName:@"Arial" size:EPCommentViewFontSize] constrainedToSize:maximumLabelSize lineBreakMode:NSLineBreakByWordWrapping];
}
return expectedLabelSize;
}
2。将您的UITextView高度与expectedLabelSize.height进行比较以显示或不是
3。更改UITextView frame.size.height触摸视图时更多
CGRect frame = _textView.frame;
frame.size.height = [self getSizeWithMaxLabelSize:CGSizeMake(_textView.frame.size.height, NSIntegerMax) forTextViewWithText:_textView.text].height;
_textView.frame = frame;
是的。我播下了这个答案。但是,如果这行中的文本不在行尾,我很感兴趣如何计算更多按钮的位置。 (例如:可能的解决方案是获得uitextview中的最后一行宽度) – Devios 2014-09-02 11:43:20
只是getSize到当前行 – 2014-09-02 12:11:36