我有UILabel
,其中包含的文字大小超过UILabel
。我不想改变UILabel size
我只想要一行。所以我的问题是如何跳过(删除)导致UILabel
截断尾部的文本?
答案 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;
有意义吗?