如何更改故事板中定义的uiview的高度

时间:2013-10-25 16:38:24

标签: ios uiview

更新:我最终将下面的代码实现到自己的方法中,然后从viewDidLayoutSubviewswillAnimateRotationToInterfaceOrientation调用它。从viewDidAppear(按照建议)执行此操作不会在从segue返回时调整视图大小。


我在故事板中定义了UIView,我在UIViewController上用于标题视图。我的代码中有一个常量,所有标题视图都高达80个单位。我在故事板标题视图中有一个标记200.我以为我可以使用此标记来获取视图,修改底层CGRect的高度,然后将标题视图重新设置为修改后的CGRect。但这似乎并不影响身高。我错过了什么?

- (void)viewDidLoad
{
   UIView *header = [self.view viewWithTag:200];
   CGRect hrect = [header frame];
   hrect.size.height = HEADER_HEIGHT;
   [header setFrame:hrect];
 ...

2 个答案:

答案 0 :(得分:3)

尝试在viewDidAppear上执行此操作,然后调用

[self setNeedsLayout]

答案 1 :(得分:1)

问题在于您将标记用作NSString。 tag属性是NSInteger。尝试执行以下操作:

- (void)viewDidLoad
{
    UIView *header = [self.view viewWithTag:200];// give the tag as an int
    CGRect hrect = [header frame];
    hrect.size.height = HEADER_HEIGHT;
    [header setFrame:hrect];
...

另外,请确保您在故事板中定义的标记也是200而不是@“200”。

希望这有帮助!