On Jul 31, 2014, at 10:05 AM, David Duncan <david.dun...@apple.com> wrote:
> 
> 
>> 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

Really? This goes against my instinct… the desired result is that the slider 
take up a certain percentage of its superview. Therefore the computation should 
encode this relationship.

> (given that calling setNeedsLayout/layoutIfNeeded on the toolbar as you do 
> above really should not change the toolbar’s size…).

This actually gets at a question I’ve had for a while—does -layoutIfNeeded 
resize the receiver, or only its subviews? I’m not sure the docs are explicit 
about this.

--Kyle Sluder

_______________________________________________

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

Reply via email to