UITableView适用于iOS 7,但在iOS 8中显得很糟糕

时间:2014-08-31 23:32:11

标签: uitableview ios7 ios8 xcode6-beta6

这里的iOS编程还是新手。有一个UITableView在iOS 7上运行完美但在iOS 8中显得很糟糕。多个设备。使用模拟器时也会出现相同的问题/差异(iOS 7与iOS 8模拟器)。

我在Xcode 6 beta 6,Yosemite beta 6,iOS 7.12和iOS 8 beta 5上。

我已经使代码尽可能简单和完整,以显示问题:

    - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
        // Return the number of sections.
        return 1;
    }

    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
        // Return the number of rows in the section.
        return [self.numberOfDays count];
    }

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

        static NSString *CellIdentifier = @"Cell";

        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier ];

        NSLog (@"%li", (long)indexPath.row);

        UILabel *label;
        label = (UILabel *)[cell viewWithTag:1];
        label.text = @"Monday";

        return cell;
    }

注意我的NSLog声明。我的UIViewTable(0-87)中有88行。

  • 在iOS 7中加载此表时...

    • 我的控制台中有12行
    • 由于这是可查看行的初始数量
    • 桌子滚动得很好,很流畅......一切都很好。
  • 在iOS 8中加载此表时...

    • 我的控制台中有88行
    • 无论如何,这对我来说没有意义
    • 表的初始外观看起来不错
    • e.g。前12行正确显示
    • 表格无法正确滚动。
    • 第12-87行显示约1个像素高。

表的初始外观看起来没问题(例如前12行正确显示),直到我尝试滚动它。然后第12-87行出现约1个像素高。

请帮助!

好的 - 就像添加一样简单:     tableView.rowHeight = 44; 在我的静态NSString * CellIdentifier = @“Cell”之后;线。 我不需要这是iOS 7,不知道为什么我需要它在iOS 8中。

2 个答案:

答案 0 :(得分:1)

好的 - 就像添加:

一样简单
    tableView.rowHeight = 44; 

在我的

之后
    static NSString *CellIdentifier = @"Cell"; 

线。我不需要这是iOS 7,不知道为什么我在iOS 8中需要它。

答案 1 :(得分:1)

您的解决方案可能有效,但最好实现heightForRowAtIndexPath方法

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

我不知道为什么iOS 7和8之间存在差异,也许其他人可以对此有所了解?