Another interesting issue found today. NSURL fileURLWithPath has changed behavior in iOS 7.
Before iOS 7 it would return a fileURL with file://localhost prepended to the path passed in (so passing in “/var/test” would return “file://localhost/var/test”)
In iOS 7 it returns file:// (so passing in “/var/test” would return “file:///var/test”)
Before iOS 7, the default background color for a UITableView was clearColor, and UITableViewCells by default took on the UITableView’s background color, so there was virtually no work setting up our tables in iOS 6.
When you switch to Xcode 5, your tables will default to the new iOS 7 behavior. UITableView’s have a white background color by default, so you must change it to clearColor either in Interface Builder or programmatically.
More importantly, UITableViewCell’s no longer pick up the background color of the UITableView and are white by default. Setting the backgroundColor in InterfaceBuilder for a UITableViewCell has no effect (to my surprise I guess this has always been the case).
So, the “correct” way (based on Apple’s documentation in UITableViewCell) to set the UITableViewCell’s backgroundColor is to do it in the UITableViewDelegate willDisplayCell method, as shown here:
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
cell.backgroundColor = [UIColor clearColor];
Also, be sure your UITableViewCell’s contentView.backgroundColor is also set to clearColor (this can be done in Interface Builder).
I have found though that I can set the backgroundColor when I deque the cells in cellForRowAtIndexPath, but I’m not 100% sure this will work in all cases.