2014. 5. 22. 18:29

IOS 의 UILabel의 가로정렬은 아주 간단하게 가능하지만~


세로정렬은 기본적으로 제공하지 않는다.. (가로정렬처럼 align 때려박듯이 한방에 되었으면 좋겠다만)


덕분에 세로정렬을 위해서는 골을 좀 싸메야 한다.!


우선 UILabel의 SIze를 알아내서 Frame을 셋팅하는 방법으로 하면 된단다.


- (void)setUILabel:(UILabel *)myLabel withMaxFrame:(CGRect)maxFrame withText:(NSString *)theText usingVerticalAlign:(int)vertAlign 

{

  CGSize stringSize =

  [theText sizeWithFont:myLabel.font constrainedToSize:maxFrame.sizelineBreakMode:myLabel.lineBreakMode];

    

    switch (vertAlign) {

        case 0// vertical align = top

            myLabel.frame = 

              CGRectMake(myLabel.frame.origin.xmyLabel.frame.origin.ymyLabel.frame.size.widthstringSize.height);

            break;

            

        case 1// vertical align = middle

            // don't do anything, lines will be placed in vertical middle by default

            break;

            

        case 2// vertical align = bottom

            myLabel.frame = CGRectMake(myLabel.frame.origin.x

                                       (myLabel.frame.origin.y + myLabel.frame.size.height) - stringSize.height

                                       myLabel.frame.size.width

                                       stringSize.height

                                       );

            break;

    }

    

    myLabel.text = theText;

} 

 

끝.

Posted by 은돌군