Question

I have set a UIView in my storyboard and make it an outlet.

 @property (nonatomic, weak) IBOutlet UIView *testView;

In the - (void)viewDidLoad method, I want to change its frame like this

CGRect frame = self.testView.frame;
frame.size.height = 2;
self.testView.frame = frame;

But it does not work. Anybody can tell me why?

Was it helpful?

Solution

You might enabled the autolayout in your project , if so the setFrame straightly won't work . Check here for more info

Solution :

  • Disable the autolayout, if you don't need any more
  • Check the above link using with the autolayout .

OTHER TIPS

Look at the tiny circle to the left of the property. Is it filled in or hollow? If it's hollow, then it means that you have not connected this particular element of the storyboard to the file's owner.

If the circle is filled in, than the outlet IS connected to something on your storyboard. Just make sure it's connected to the right entity, namely the UIViewController (or subclass thereof) that you are declaring testView within.

Assuming its connected to your XIB do the following after changing the view -

[self.view setNeedsDisplay];

Trying changing the height to high number and see if that make a difference. I have created demo project for changing and reverting the height. Hope this helps.

https://github.com/rshankras/StackOverflowUIView

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top