4

这是我正在使用的代码:

-(void)viewDidLayoutSubviews{
    CGSize screenSize = [[UIScreen mainScreen] bounds].size;

    if (screenSize.height <= 480.0f) {
        self.img.frame = CGRectMake(21, 20, 280, 275);
        self.text.frame = CGRectMake(21, 20, 280, 275);
        self.decrease.frame= CGRectMake(55, 308, 39, 39);
        self.add.frame = CGRectMake(55, 308, 39, 39);
        self.increase.frame =CGRectMake(55, 308, 39, 39);
    }
    else{
        self.img.frame = CGRectMake(21, 20, 280, 400);
        self.text.frame = CGRectMake(21, 20, 280, 400);
        self.decrease.frame= CGRectMake(55, 308, 39, 39);
        self.add.frame = CGRectMake(55, 308, 39, 39);
    }    
}

我正在使用相同的代码(在 viewDidLayoutSubviews 之外)来更改框架,并且效果很好。我的问题是 viewDidLayoutSubviews 中的代码不起作用。它不会在加载视图时改变帧大小或位置。有什么建议么?

4

1 回答 1

1

你不应该先调用[super viewDidLayoutSubviews] 吗?

-(void)viewDidLayoutSubviews{ 
    [super viewDidLayoutSubviews];
    CGSize screenSize = [[UIScreen mainScreen] bounds].size;

    if (screenSize.height <= 480.0f) {
        self.img.frame = CGRectMake(21, 20, 280, 275);
        self.text.frame = CGRectMake(21, 20, 280, 275);
        self.decrease.frame= CGRectMake(55, 308, 39, 39);
        self.add.frame = CGRectMake(55, 308, 39, 39);
        self.increase.frame =CGRectMake(55, 308, 39, 39);
    }
    else{
        self.img.frame = CGRectMake(21, 20, 280, 400);
        self.text.frame = CGRectMake(21, 20, 280, 400);
        self.decrease.frame= CGRectMake(55, 308, 39, 39);
        self.add.frame = CGRectMake(55, 308, 39, 39);
    }    
}
于 2013-04-16T07:56:08.650 回答