如何防止UILabel切断'...'

时间:2011-04-28 20:42:32

标签: iphone objective-c cocoa-touch uilabel

我想知道是否有办法阻止UILabel切断'...'?我有一个宽度为55,高度为20的CGRect,我希望它在55之后简单地切断(或剪掉内容),而不用“......”表示还有更多。

        UILabel *btnTitle = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 55, 20)];
    btnTitle.text = labelMe;
    btnTitle.textColor = [UIColor whiteColor];
    btnTitle.backgroundColor = [UIColor clearColor];
    btnTitle.transform = CGAffineTransformMakeRotation( ( 90 * M_PI ) / 180 );

通过将UILabel(增加宽度,即100 x 20)放入UIView(55 x 20)并将clipsToBounds设置为YES,结果我无法点击我,我实现了我想要的(即裁剪)按钮 - 因为我使用标签来标记按钮。包含标签的UIView隐藏了我的按钮......

如果没有使用UIView剪辑我的UILabel的内容,有没有办法解决这个问题?

5 个答案:

答案 0 :(得分:9)

试试这个:

label.lineBreakMode = NSLineBreakByClipping;

有关详细信息,请参阅UILabel Class Reference

希望这有帮助

答案 1 :(得分:1)

使用UILineBreakModeClip或其他选项之一。使用UILabel lineBreakMode属性设置它。

答案 2 :(得分:1)

您可以告诉您的视图包含您的标签以忽略触摸并将其发送给下一个可用的响应者,只需将此方法添加到您的view.m文件

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event{
    return NO;
}

答案 3 :(得分:1)

Ole Begemann / eddyce的答案的Swift4版本:

label.linebreakMode = NSLineBreakMode.byClipping

答案 4 :(得分:0)

Swift 5版本的 Ole Begemann的答案:

label.lineBreakMode = .byClipping