yelp / yltableview Goto Github PK
View Code? Open in Web Editor NEWLicense: Other
License: Other
-[YLTableViewCell setModel:]
is annotated as nullable, but I can't come up with a legitimate scenario where it would make sense to call setModel:
with a nil model.
In fact, tableView:modelForCellAtIndexPath:
is actually marked as nonnull, so that wouldn't be a source of nil.
If you read great post from @plasm_lc then you will find that method tableView:cellForRowAtIndexPath:
is not a good place for configuring cells. Better place is method tableView:willDisplayCell:forRowAtIndexPath:
. It's more efficient and recommended by Apple in official documentation.
In YLTableView.m, we override registerClass:forCellReuseIdentifier:
so that we can keep our own cellClassForReuseIdentifier dictionary up to date, but then never read from that dictionary.
UITableView allows you to register a nib for your table view cell, but we don't support this in YLTableView.
It seem that if the childViewController
is kind of UITableViewController then the height of cell is wrong .And Xcode will output the following log
Warning once only: Detected a case where constraints ambiguously suggest a height of zero for a tableview cell's content view. We're considering the collapse unintentional and using standard height instead.
Constraints of childViewController
can't not get the height,because the childViewController's height is determined by the tableView which is determined by the content size .
The UITableView docs for registerClass:forCellReuseIdentifier:
say that:
You may specify
nil
for cellClass if you want to unregister the class from the specified reuse identifier.
However, attempting that with YLTableView causes an assertion failure:
You can only use cells conforming to YLTableViewCell.
The assertion is triggered because, well, nil isn't a YLTableViewCell.
In YLExampleTextCell, there is some code that only runs for iOS versions pre-iOS8: https://github.com/Yelp/YLTableView/blob/95ebf80/YLTableViewExample/Classes/YLExampleTextCell.m#L45-L49
It's a little misleading for the example code to handle iOS7 when it wouldn't be possible to use YLTableView 2.0 on iOS7. We can just delete those lines.
I have utilised the YLTableView example app as a guide to implement YLTableView in MyApp.
On implementation - I have run into the below mentioned error.
As found in these StackOverflow questions
2. Getting a “This application is modifying the autolayout engine” error?
MyApp Log
2016-08-10 11:56:10.923 MyApp[1955:1065939] This application is modifying the autolayout engine from a background thread, which can lead to engine corruption and weird crashes. This will cause an exception in a future release.
Stack:(
0 CoreFoundation 0x00000001827d5918 <redacted> + 148
1 libobjc.A.dylib 0x0000000181e43f80 objc_exception_throw + 56
2 CoreFoundation 0x00000001827d5848 <redacted> + 0
3 Foundation 0x00000001832732d4 <redacted> + 88
4 Foundation 0x00000001830f547c <redacted> + 36
5 UIKit 0x00000001875cf5e0 <redacted> + 64
6 UIKit 0x00000001875cf824 <redacted> + 548
7 UIKit 0x00000001875cf5f0 <redacted> + 80
8 UIKit 0x00000001874c2a38 <redacted> + 240
9 UIKit 0x000000018760fa98 <redacted> + 640
10 UIKit 0x00000001875cc37c <redacted> + 68
11 UIKit 0x00000001875d3078 <redacted> + 28
12 UIKit 0x00000001875d6108 <redacted> + 364
13 MyApp 0x000000010011f5c4 -[MyAppCell _installConstraints] + 384
14 MyApp 0x000000010011f3f4 -[MyAppCell initWithStyle:reuseIdentifier:] + 568
15 UIKit 0x0000000187613be0 <redacted> + 528
16 UIKit 0x000000018764fbd4 <redacted> + 88
17 MyApp 0x00000001002e2004 -[YLTableViewDataSource tableView:cellForRowAtIndexPath:] + 120
18 UIKit 0x000000018781931c <redacted> + 692
19 UIKit 0x0000000187819484 <redacted> + 80
20 UIKit 0x00000001878087e8 <redacted> + 2360
21 UIKit 0x000000018781dfb0 <redacted> + 104
22 UIKit 0x00000001875b308c <redacted> + 176
23 MyApp 0x00000001002e17fc -[YLTableView layoutSubviews] + 60
24 UIKit 0x00000001874c3778 <redacted> + 656
25 QuartzCore 0x0000000184ed2b2c <redacted> + 148
26 QuartzCore 0x0000000184ecd738 <redacted> + 292
27 QuartzCore 0x0000000184ecd5f8 <redacted> + 32
28 QuartzCore 0x0000000184eccc94 <redacted> + 252
29 QuartzCore 0x0000000184ecc9dc <redacted> + 512
30 QuartzCore 0x0000000184efbae0 <redacted> + 236
31 libsystem_pthread.dylib 0x000000018243e1e0 <redacted> + 584
32 libsystem_pthread.dylib 0x000000018243dd58 <redacted> + 136
33 libsystem_pthread.dylib 0x000000018243d53c pthread_mutex_lock + 0
34 libsystem_pthread.dylib 0x000000018243d020 start_wqthread + 4
)
Have you seen this issue before? If so, any ideas on where to investigate further?
Many Thanks,
Shane
I'm not sure if this was due to an order of events I attempted to open the workspace or an out of date cocoapods version I was originally using but I kept getting the following error.
[!] Unable to satisfy the following requirements:
YLTableView (from
../)
required by Podfile
YLTableView (= 1.0.0)
required by Podfile.lock
Wonder if it would be better to not include the workspace and lock. Or include them, but include the Pods already. Got around this issue by deleting the workspace then reinstalling the pods.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.