At least part of my problem is I forgot to implement 
-tableView:heightForHeaderInSection:

On Jul 11, 2013, at 14:26 , Rick Mann <rm...@latencyzero.com> wrote:

> I'm trying to reproduce the UITableView section header view used by iOS for 
> regular text headers. Based on Reveal.app, I see that it's a view sized 540 x 
> 34 that contains a UILabel (subclass) sized width x 21, positioned 40x5.
> 
> I wanted to add a UIActivityIndicator just to the end of the text label, so I 
> built up the same hierarchy in IB:
> 
>       http://cl.ly/image/1L3q1b43471w
> 
> But that alone wasn't enough; iOS stretches my view to the full width of the 
> table, and squashes it vertically to something very short. So I tried adding 
> a height constraint in code, because IB doesn't let me add a height 
> constraint to a top-level view:
> 
> + (UITableViewSectionHeaderWithActivityIndicator*)
> instance
> {
>    static  UINib*          sNib;
>    static  dispatch_once_t sInit;
>    dispatch_once(&sInit,
>    ^{
>        sNib = [UINib nibWithNibName: 
> @"UITableViewSectionHeaderWithActivityIndicator" bundle: nil];
>    });
> 
>    NSArray* objs = [sNib instantiateWithOwner: nil options: nil];
>    UITableViewSectionHeaderWithActivityIndicator* v = objs.lastObject;
> 
>    //  IB won't let us add constraints to the top-level view…
> 
>    //v.translatesAutoresizingMaskIntoConstraints = false;
> 
>    NSDictionary* metrics = @{ @"height" : @(v.frame.size.height) };
>    NSDictionary* views = @{ @"view" : v };
>    NSArray* constraints = [NSLayoutConstraint constraintsWithVisualFormat: 
> @"V:[view(height)]" options: 0 metrics: metrics views: views];
>    [v addConstraints: constraints];
> 
>    return v;
> }
> 
> This fails with:
> 
>> 2013-07-11 14:21:32.317 App[70432:c07] Unable to simultaneously satisfy 
>> constraints.
>>      Probably at least one of the constraints in the following list is one 
>> you don't want. Try this: (1) look at each constraint and try to figure out 
>> which you don't expect; (2) find the code that added the unwanted constraint 
>> or constraints and fix it. (Note: If you're seeing 
>> NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the 
>> documentation for the UIView property 
>> translatesAutoresizingMaskIntoConstraints) 
>> (
>>    "<NSLayoutConstraint:0x9fb6570 
>> V:[UITableViewSectionHeaderWithActivityIndicator:0x9fb6c80(34)]>",
>>    "<NSAutoresizingMaskLayoutConstraint:0x9fb50d0 h=--& v=--& 
>> V:[UITableViewSectionHeaderWithActivityIndicator:0x9fb6c80(10)]>"
>> )
>> 
>> Will attempt to recover by breaking constraint 
>> <NSLayoutConstraint:0x9fb6570 
>> V:[UITableViewSectionHeaderWithActivityIndicator:0x9fb6c80(34)]>
> 
> So I tried setting translatesAutoresizingMaskIntoConstraints to false, but 
> that results in
> 
>> 2013-07-11 14:24:53.688 App[70482:c07] *** Assertion failure in 
>> -[UITableView layoutSublayersOfLayer:], 
>> /SourceCache/UIKit_Sim/UIKit-2380.17/UIView.m:5776
>> 2013-07-11 14:24:57.127 App[70482:c07] *** Terminating app due to uncaught 
>> exception 'NSInternalInconsistencyException', reason: 'Auto Layout still 
>> required after executing -layoutSubviews. UITableView's implementation of 
>> -layoutSubviews needs to call super.'
> 
> So I commented out that line and then added the bottom space constraint in IB 
> (between the label and the container view, to force the view's height).
> 
> Any suggestions?
> 
> Thanks,
> -- 
> Rick
> 
> 
> 
> 
> _______________________________________________
> 
> 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/rmann%40latencyzero.com
> 
> This email sent to rm...@latencyzero.com


-- 
Rick




_______________________________________________

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