Peter, Thanks for the reply and the code sample. It definitely has a lot of cool stuff.
However, I’m still interested in whether anyone else has info in on dynamically-sized Collection View cells using the ‘estimatedItemSize’ property of the flow layout. Is this a lie from a WWDC presenter? Are there a number of other steps that aren’t documented that one needs to do? Any Apple sample code that implements this? Apple experts please chime in! Doug Hill > On Sep 29, 2015, at 7:12 PM, Peter Tomaselli <[email protected]> wrote: > > Hi Doug! Funny you mention this, I was trying and failing to do the same > thing just tonight. > > Thing is, I’ve done it before and have a toy implementation on GitHub[0] to > prove it! Not that that was helping me just now, of course, but perhaps a > link to that repo can help you out? > > There are additional layers of complication in the linked project because 1. > the labels inside the cells are themselves line-wrapping if necessary, so > it’s quite “inside-out” as far as layout goes, and 2. the flow layout is > “left-justified” instead of “fully-justified”, so be sure to ignore those > aspects of the code if you do end up peeking. > > Anyway, to be brutally honest I can’t for the life of me remember which of > the methods and/or properties in this old project are critical for getting > your scenario to work, and which are related solely to mine, but perhaps it’s > a decent starting point anyway. > > IIRC there also was a gotcha here wherein setting up your cell in IB > basically meant you were SOL as far getting everything to work went > (something about subviews not being embedded in the contentView properly?), > but I could be wrong about that. > > Anyway a truly flowy layout is one of the things I most desire so if you gain > any insights more, or if anyone else can chime in with better advice, I am > very interested too. > > — Peter > > [0] https://github.com/Peterbing/CV-AutoLayout > <https://github.com/Peterbing/CV-AutoLayout> > >> On Sep 29, 2015, at 6:29 PM, Doug Hill <[email protected] >> <mailto:[email protected]>> wrote: >> >> I’m trying to implement a collection with dynamically sized cells. The WWDC >> session from 2014 “What’s New in Table and Collection Views” talks about how >> to do this by: >> • Use autolayout constraints to set the height of the cell based on the >> content size of the subviews. >> • Set the estimatedItemSize property of the flow layout object to get the >> scrollbars to be in close the correct location. >> >> This doesn’t seem to work as I see the following log message: >> >> the behavior of the UICollectionViewFlowLayout is not defined because: >> the item width must be less than the width of the UICollectionView minus the >> section insets left and right values, minus the content insets left and >> right values. >> Please check the values return by the delegate. >> The relevant UICollectionViewFlowLayout instance is >> <UICollectionViewFlowLayout: 0x7c218e20>, and it is attached to >> <UICollectionView: 0x7a411c00; frame = (0 0; 205 615); clipsToBounds = YES; >> autoresize = RM+BM; gestureRecognizers = <NSArray: 0x7c7674f0>; layer = >> <CALayer: 0x79e25060>; contentOffset: {0, 0}; contentSize: {205, 66}> >> collection view layout: <UICollectionViewFlowLayout: 0x7c218e20>. >> 2015-09-29 14:48:29.255 Chartcube[65578:3340001] Make a symbolic breakpoint >> at UICollectionViewFlowLayoutBreakForInvalidSizes to catch this in the >> debugger. >> >> also >> the behavior of the UICollectionViewFlowLayout is not defined because: >> the item width must be less than the width of the UICollectionView minus the >> section insets left and right values. >> Please check the values return by the delegate. >> >> FWIW I don’t set any other properties of the flow layout. >> >> Doing a Google search leads me to the following page: >> >> http://corsarus.com/2015/collection-view-with-self-sizing-cells/ >> >> which discusses this error message and how to add another constraint at >> runtime to fix it. It sets a fixed width constraint of the cell content >> view. This “solution” appears to be a bit of a hack since they did some >> trial and error to figure out how to set it so that it would make things >> work. This leads me to believe there’s something else going on. Also, it >> would be great to know why I get the error in the first place. Maybe there’s >> some other setting in the flow layout that needs to be made? >> >> Can someone comment on how to implement dynamically-sized collection view >> cells correctly? Unfortunately, the WWDC session doesn’t go into detail on >> how they got their collection view to autoresize the cells and there’s isn’t >> any sample code for the project described in the video. It would be great to >> know the “approved” way to implement this behavior. >> >> Thanks! >> >> Doug Hill >> >> _______________________________________________ >> >> Cocoa-dev mailing list ([email protected]) >> >> 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/vast.grapes%40gmail.com >> <https://lists.apple.com/mailman/options/cocoa-dev/vast.grapes%40gmail.com> >> >> This email sent to [email protected] <mailto:[email protected]> _______________________________________________ Cocoa-dev mailing list ([email protected]) 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 [email protected]
