How to set the height of a Today Widget Extension?

Gotschi picture Gotschi · Jun 4, 2014 · Viewed 35.3k times · Source

How can i change the height of my App's Today Extension in the Notification Center?

I tried it with the Interface Builder and with Code, the Interface Builder Displays the View with height 600, but it's not applying this height on the device.

It seems I can't get it bigger than some 80 pixels...

enter image description here

Answer

Santa Claus picture Santa Claus · Jun 4, 2014

In your widget UIViewController.m (Objective-C):

self.preferredContentSize = CGSizeMake(0, 200);

Will make your widget have a height of 200.

Note that the width will have no affect on the view, as widgets must fit in the exact width of notification center, which is handled automagically.

Also, if you want to animate changes in the height of your view, you can implement (Objective-C):

- (void)viewWillTransitionToSize:(CGSize)size
       withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator

in your view controller using -animateAlongsideTransition:completion:

The answer was a bit hidden; you had to click around in the documentation sidebar to eventually find this fantastic document.


Another way is to use auto-layout constraints to constrain your view's height.