How to align UILabel text from bottom?

后端 未结 10 1510
盖世英雄少女心
盖世英雄少女心 2021-02-03 19:08

How the UILabel can be aligned from bottom. Let say, my label can hold three line of text.If the input text is single line, then this line should come bottom of the

10条回答
  •  清歌不尽
    2021-02-03 19:50

    Here are two ways of doing that...

    1. First set numberOfLines to 0 and then use sizeToFit property of UILabel so your UILabel display with its contentSize.

    yourLabel.numberOfLines = 0;
    
    [yourLabel sizeToFit];
    

    See more information from this link: Vertically align text within a UILabel

    2. Another option is to take UITextField instead of UILabel and set userInteractionEnabled to NO like below...

    [yourTextField setUserInteractionEnabled:NO];
    

    and then set the contentVerticalAlignment property to bottom like below...

    [yourTextField setContentVerticalAlignment:UIControlContentVerticalAlignmentBottom];
    

    UPDATE

    Also, with UITextField, we can't achieve multiple lines. So instead we can use UITextView and set its userInteractionEnabled to NO. Then, use the code below to make it bottom aligned.

    CGFloat topCorrect = ([label bounds].size.height - [label contentSize].height);
    topCorrect = (topCorrect <0.0 ? 0.0 : topCorrect);
    label.contentOffset = (CGPoint){.x = 0, .y = -topCorrect};
    

提交回复
热议问题