关于使用MTLabel进行设备旋转的问题

时间:2011-11-25 07:20:22

标签: ios ipad orientation uilabel

我必须使用MTLabel Class来表示UILabel的行间距。

(参考示例代码:https://github.com/Tuszy/MTLabel

但存在一些问题。

我正在制作iPad应用程序。此应用程序可以旋转 - 横向或纵向。

我将UILabel和MTLable对象放在没有IB的视图上。

每当设备的方向改变时,文本的宽度也会改变。

这个结果不是我想要的。

我的代码:

#import "MTLabel.h"

- (void)viewDidLoad
{
    [super viewDidLoad];

     MTLabel *TitleFont = [[MTLabel alloc] initWithFrame:CGRectMake(255, 60, 270, 60)];

    [TitleFont setFont:[UIFont fontWithName:@"Arial" size:30.0]];

    TitleFont.backgroundColor = [UIColor greenColor];
    TitleFont.text = @"Happy! - 1";
    TitleFont.autoresizingMask = UIViewAutoresizingFlexibleTopMargin& UIViewAutoresizingFlexibleLeftMargin&UIViewAutoresizingFlexibleRightMargin;

    TitleFont.autoresizingMask= UIViewAutoresizingFlexibleWidth;

    [self.view addSubview:TitleFont];

    //----------------------

    UILabel *TitleFont2 = [[UILabel alloc] initWithFrame:CGRectMake(255, 120, 270, 60)];

    [TitleFont2 setFont:[UIFont fontWithName:@"Arial" size:30.0]];

    TitleFont2.backgroundColor = [UIColor orangeColor];
    TitleFont2.text = @"Happy! - 2";
    TitleFont2.autoresizingMask = UIViewAutoresizingFlexibleTopMargin& UIViewAutoresizingFlexibleLeftMargin&UIViewAutoresizingFlexibleRightMargin;

    TitleFont2.autoresizingMask= UIViewAutoresizingFlexibleWidth;

    [self.view addSubview:TitleFont2];



}

结果: 1)肖像图像:

enter image description here

2)风景图片: enter image description here

如果我使用UILabel类,没问题! 但我必须使用MTLabel类来获取UILabel的行间距。

请帮助我......谢谢。

3 个答案:

答案 0 :(得分:1)

试试这个:

[TitleFont setContentMode:UIViewContentModeRedraw];

答案 1 :(得分:0)

你需要使用setNeedsDisplay踢MTLabel以正确地重新绘制新的大小。可能在didRotateFromOrientation中。

答案 2 :(得分:0)

[TitleFont setNeedsDisplay]
试试这个,它对我有用。 并确定你应该禁用setAutoresizesSubviews:<NO>