> On Jul 30, 2014, at 9:00 PM, Gerriet M. Denkmann <gerr...@mdenkmann.de> wrote: > > > On 31 Jul 2014, at 00:18, David Duncan <david.dun...@apple.com> wrote: > >>> That's the purpose of setting the auto-resizing mask to FlexibleWidth. At >>> least for title views, that causes UINavigationBar to send -sizeThatFits: >>> to the view. >> >> For UINavigationBar you shouldn’t need to even set flexible width, just >> implement -sizeThatFits:. Unfortunately UIToolbar does not call >> -sizeThatFits: for the views of bar button items. >> >> Gerriet, you can try setting the frame of the slider then calling >> -setNeedsLayout/-layoutIfNeeded on the toolbar to update the layout. If you >> do this within the standard layout callbacks it should go along with any >> animation that is already going. > > Following your suggestion I changed my code to: > > override func viewWillLayoutSubviews() // manage slider in > bottomToolBar > { > // current width of toolbar is all wrong. Need to do: > bottomToolBar.setNeedsLayout() > bottomToolBar.layoutIfNeeded() >
Assuming that you're in a typical case (the toolbar is the same width as your view) you can just use self.view.bounds.width instead of bottomToolBar.frame.size.width here. This is likely to be more robust (given that calling setNeedsLayout/layoutIfNeeded on the toolbar as you do above really should not change the toolbar’s size…). > // now the toolbar width seems to be right > let b = bottomToolBar.frame.size.width > speedSlider.frame.size.width = b - 40 > > bottomToolBar.setNeedsLayout() > bottomToolBar.layoutIfNeeded() > } > > Works perfectly now. Thanks a lot! Glad it worked! > > > Kind regards, > > Gerriet. > > -- David Duncan _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com