9
當狀態帖子太長時,Facebook應用會剪切文本並在最後添加「繼續閱讀」。它如何知道在哪裏剪切文本並添加「...繼續閱讀」?如何將按鈕添加到Facebook的「繼續閱讀」文本的末尾?
不只是添加一個按鈕textView或標籤,但我如何剪切字符串。 在下面的圖片中,例如,我將行數限制爲7.我可以在textView或label的右下角放置一個按鈕,但它可能會重疊某些字符。
當狀態帖子太長時,Facebook應用會剪切文本並在最後添加「繼續閱讀」。它如何知道在哪裏剪切文本並添加「...繼續閱讀」?如何將按鈕添加到Facebook的「繼續閱讀」文本的末尾?
不只是添加一個按鈕textView或標籤,但我如何剪切字符串。 在下面的圖片中,例如,我將行數限制爲7.我可以在textView或label的右下角放置一個按鈕,但它可能會重疊某些字符。
這會幫助你:)
NSString *str=self.strQuestionTitle;
CGRect rect=CGRectMake(51, 16, 257, 0);
CGSize size=[str sizeWithFont:self.lblQuestion.font constrainedToSize:CGSizeMake(257, 3000) lineBreakMode:self.lblQuestion.lineBreakMode];
int lines=(size.height/self.lblQuestion.font.pointSize);
self.lblQuestion.numberOfLines=lines;
rect.size=size;
if(lines>2)
{
if(lines==3 &&[str length]>66)
{
str=[str substringToIndex:66];
str=[str stringByAppendingString:@"...Read More"];
size=[str sizeWithFont:self.lblQuestion.font constrainedToSize:CGSizeMake(257, 67) lineBreakMode:self.lblQuestion.lineBreakMode];
int lines=(size.height/self.lblQuestion.font.pointSize);
self.lblQuestion.numberOfLines=lines;
rect.size=CGSizeMake(257, 67);
}
else if(lines>3)
{
str=[str stringByAppendingString:@"...Read More"];
size=[str sizeWithFont:self.lblQuestion.font constrainedToSize:CGSizeMake(257, 67) lineBreakMode:self.lblQuestion.lineBreakMode
];
int lines=(size.height/self.lblQuestion.font.pointSize);
self.lblQuestion.numberOfLines=lines;
rect.size=CGSizeMake(257, 67);
}
//self.lblQuestion.lineBreakMode=NSLineBreakByTruncatingHead;
}
我想它只是在預覽文本字符的限制。如果文本超過該限制,則會將其切斷並添加「...繼續閱讀」。如果您想避免切斷單詞,只需在字符限制之前搜索空白(空格)的最後一個實例。 –
@ParisNelson所以我使用這個從文本長度有限的矩形中獲取字符串。然後做你的話。這有意義嗎? –
@ParisNelson嘗試描述一個實際的解決方案,而不僅僅是你看到的高層次的描述。 UILabel沒有「字符限制」,也不會自動添加可點擊的文本,並帶有「繼續閱讀」的良好樣式。 –