iOS 8 gray box over UITableView

后端 未结 4 1566
醉酒成梦
醉酒成梦 2021-02-20 15:21

I am making an app where I need to use UITableViews to display content in an organized fashion, but since I updated to iOS 8 and Xcode 6 I have been getting a myste

相关标签:
4条回答
  • 2021-02-20 15:36

    In iOS 8 the row height can be set automatically for you. All you have to do is set a top and bottom constraint to the contentView of the UITableViewCell, like this (notice the constraints):

    Interface builder - defining the uitableviewcell

    By doing this, the row height will be automatic and you won't need to set a fixed height. This fixes the gray background color you have encountered.

    Resource: http://www.shinobicontrols.com/blog/posts/2014/07/24/ios8-day-by-day-day-5-auto-sizing-table-view-cells

    0 讨论(0)
  • 2021-02-20 15:51

    In iOS 8, you must specify a height in the UITableView's delegate:

    -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
        return 44.0;
    }
    

    In iOS 7 and earlier, a default was accepted. See this link for more information.

    0 讨论(0)
  • 2021-02-20 15:52

    This is definitely a bug in XCode6-Beta2. I found a workaround. Select the storyboard, and go to the File Inspector utility. Uncheck the option "Use Auto Layout" then click "Disable Size Classes" in the popup.

    Auto Layout seems to be quite broken in beta2. Once you turn off Size Classes, the mysterious "ambiguous scrollable content" warnings will also go away.

    I was able to turn Size Classes and Auto Layout back on afterward and the gray rectangle is still gone, but everything is in the wrong place after losing the Size Classes info. It's a mess.

    0 讨论(0)
  • 2021-02-20 15:52

    Strangely enough, it has to do with the Table View Separator Style. If you set that to None, the problem will go away. But of course, then you have no separators! If you want to use Single Line separators, you have to manually specify a cell height in -tableView:heightForRowAtIndexPath:.

    I have no idea why this is the case, but I am guessing it has something to do with the new self-sizing table rows. Time to do some research :)

    0 讨论(0)
提交回复
热议问题