0

这里对 iOS 编程仍然很陌生。拥有一个在 iOS 7 上完美运行但在 iOS 8 中看起来很糟糕的 UITableView。多个设备。使用模拟器(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 行
    • 无论如何,这对我来说没有意义
    • Table的初始外观看起来不错
    • 例如前 12 行显示正确
    • 表格无法正确滚动。
    • 第 12-87 行的高度约为 1 像素。

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

请帮忙!

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

4

2 回答 2

1

好的 - 就像添加一样简单:

    tableView.rowHeight = 44; 

在我之后

    static NSString *CellIdentifier = @"Cell"; 

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

于 2014-09-01T18:56:11.753 回答
1

Your solution might work, but it will be better to implement heightForRowAtIndexPath method

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

I have no idea why there is difference between iOS 7 and 8, perhaps someone else could shed some light on that?

于 2014-10-06T18:10:32.793 回答