2014-03-13 55 views
1

我有一个UILabel,其中包含一些文本大于UILabel的大小。我不想改变UILabel size我只想要一条线。所以我的问题是我如何跳过(删除)从尾部导致UILabel截尾的文本?计算截断UILabel的文本的一部分

回答

0

使用此行来设置您的UILabel的换行模式:

self.lineBreakMode = UILineBreakModeWordWrap 
1

恐怕没有一个直接的方法来计算。但是,您可以使用boundingRectWithSize:options:attributes获取文本的大小或边界:您可以使用二分搜索算法进行迭代,并找到要切断的字符串位置。

0

试试这个吧,

我想你是要求字符包装技巧。

首先尝试在厦门国际银行

yourLabel.numberOfLines = 1; 

    yourLabel.lineBreakMode = NSLineBreakByCharWrapping; 

    //or 

    yourLabel.lineBreakMode = NSLineBreakByClipping; 
0

我最近做的UITableView的细胞类似的事情。这种方法非常灵活,您可以根据您可用的高度设置任意数量的线。其他一切都会被截断。检查出来:

CGSize maxNameLabelSize = CGSizeMake(350,60); //setting height, you can limit it to one line depending on the font 
UILabel *eventName = (UILabel*) ([activityCell.contentView viewWithTag:EVENT_TITLE]); 
//Set value here 
eventName.text = event.name; 

CGSize expectedNameLabelSize = [eventName.text sizeWithFont:eventName.font constrainedToSize:maxNameLabelSize lineBreakMode:eventName.lineBreakMode]; 
CGRect newNameFrame = eventName.frame; 
newNameFrame.size.height = expectedNameLabelSize.height; 
eventName.frame = newNameFrame; 

它有道理吗?