【问题标题】:UILabel: adjusting margins to match a UITextViewUILabel:调整边距以匹配 UITextView
【发布时间】:2010-06-17 08:29:45
【问题描述】:

我有一个 UILabel,如果我调整文本的大小,我可以让它看起来像一个 UITextView,但是左边距不同,在 UIlabel 上,文本正好靠在 UITextView 有轻微边距的左边框上.如何调整 UILabel 以便当这些控件相互叠加时,它们看起来一致?

【问题讨论】:

    标签: iphone uitextfield uilabel margins


    【解决方案1】:

    只需更改标签的框架:

    CGRect frame = label.frame;
    CGRect newFrame = CGRectMake(frame.origin.x + MARGIN, frame.origin.y, frame.size.width - MARGIN, frame.size.height);
    label.frame = newFrame;
    

    当然,用你想要的边距替换 MARGIN。

    或者您可以继承 UILabel 并覆盖 textRectForBounds:limitedToNumberOfLines:,如下所示:

    - (CGRect)textRectForBounds:(CGRect)bounds limitedToNumberOfLines:(NSInteger)numberOfLines {
        CGRect newBounds = CGRectMake(bounds.origin.x + MARGIN, bounds.origin.y, bounds.size.width - MARGIN, bounds.size.height);
        return [super textRectForBounds:newBounds limitedToNumberOfLines:numberOfLines];
    }
    

    希望这会有所帮助!

    【讨论】:

    • 更改标签框架不起作用,但是子类化可以。谢谢!
    • 乐于助人!如果此答案对您有用,请考虑奖励赏金:)
    • 这行得通,但是编辑时文本的位置会弹回原来的位置。
    猜你喜欢
    • 2012-11-07
    • 2014-10-10
    • 1970-01-01
    • 1970-01-01
    • 2015-09-04
    • 2012-12-28
    • 1970-01-01
    • 2014-03-02
    • 2012-10-25
    相关资源
    最近更新 更多