On Nov 2, 2012, at 9:03 AM, Luke Hiesterman <luket...@apple.com> wrote:
> Cells are sized according to the value returned from heightForRowAtIndexPath: Obviously. And that is why I am calculating (in advance) the value that I will return from heightForRowAtIndexPath:. I've been doing that for years. The question is, though, can I now (iOS 6) have the constraints system somehow calculate that value for me, merely by putting the ultimate values into the labels of a test cell that isn't in the interface? The code I'm using now is at <https://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/ch21p622variableHeights/ch21p622variableHeights/RootViewController.m> As you can see, I'm hard-coding the numbers in my precalc routine (viewDidLoad). Basically, I'm *guessing* what the constraints *will* do when I later give the cell height (using heightForRowAtIndexPath:) and the label resizes because of the constraints. What I'm saying is, how about if I perform the precalculation the opposite way, i.e. by resizing the label and letting it resize the cell? But I can't find a formula to do that. The code below (in this email) shows the sort of thing I've tried. m. > > On Nov 2, 2012, at 8:07 AM, Matt Neuburg <m...@tidbits.com> wrote: > >> Okay, I have this wild and crazy idea. I've got a UITableView with cells >> that have different heights. The cells' content consists almost entirely of >> UILabels, and the height of each cell depends on what's going to go into >> those labels - the cell needs to grow to accommodate the text of the labels. >> The way I've always done this in the past is to calculate how the labels >> will be drawn, using NSString sizeWithFont etc, and then lay out the labels >> and calculate the needed cell size. >> >> But it occurs to me that in theory constraints could do all the work for me. >> I'm already using constraints to resize the actual labels when the cell >> changes size to assume its final height, but maybe I could use constraints >> to *make* cell assume its final height based on the content of the labels. >> The cell is in a nib, so if there were just one label, the code might be >> something like this: >> >> NSArray* objs = [[UINib nibWithNibName:@"Cell" bundle:nil] >> instantiateWithOwner:nil options:nil]; >> Cell* cell = objs[0]; >> cell.bounds = CGRectMake(0,0,320,50); >> cell.lab.text = // whatever the actual content will be >> [cell.lab sizeToFit]; // or something :) >> >> The idea is that the label will assume its final size and the existing >> constraints will push the cell height larger as needed. Okay, but it isn't >> working; the cell isn't growing. >> >> My theory is that this probably *can't* work because the auto layout stuff >> doesn't kick in unless the view is actually in the interface, which (as you >> can see) it isn't. And probably not until the next run loop, either, which >> is not good enough; I need to run through a whole lot cells and do this, >> right now, to calculate all the cell heights in advance of the table >> appearing. >> >> So, am I right that this is just impossible, or is there some cool way to do >> it that I just haven't stumbled on yet? Thx - m. >> >> -- >> matt neuburg, phd = m...@tidbits.com, http://www.apeth.net/matt/ >> pantes anthropoi tou eidenai oregontai phusei >> Programming iOS 5! http://shop.oreilly.com/product/0636920023562.do >> RubyFrontier! http://www.apeth.com/RubyFrontierDocs/default.html >> TidBITS, Mac news and reviews since 1990, http://www.tidbits.com >> >> >> _______________________________________________ >> >> 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/luketheh%40apple.com >> >> This email sent to luket...@apple.com > -- matt neuburg, phd = m...@tidbits.com, http://www.apeth.net/matt/ pantes anthropoi tou eidenai oregontai phusei Programming iOS 5! http://shop.oreilly.com/product/0636920023562.do RubyFrontier! http://www.apeth.com/RubyFrontierDocs/default.html TidBITS, Mac news and reviews since 1990, http://www.tidbits.com _______________________________________________ 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