计算截断UILabel的部分文本

时间:2014-03-13 07:52:59

标签: ios objective-c uilabel

我有UILabel,其中包含的文字大小超过UILabel。我不想改变UILabel size我只想要一行。所以我的问题是如何跳过(删除)导致UILabel截断尾部的文本?

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

self.lineBreakMode = UILineBreakModeWordWrap

答案 2 :(得分:0)

试试这个,

我认为你在要求字符包装技巧。

首先尝试使用XIB

    yourLabel.numberOfLines = 1;

    yourLabel.lineBreakMode = NSLineBreakByCharWrapping;

    //or

    yourLabel.lineBreakMode = NSLineBreakByClipping;

答案 3 :(得分:0)

我最近在UITableView Cell上做了类似的事情。这种方法很灵活,因为您可以根据可用的高度设置任意数量的线。其他一切都将被截断。看看:

 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;

有意义吗?

相关问题