这里的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中加载此表时...
在iOS 8中加载此表时...
表的初始外观看起来没问题(例如前12行正确显示),直到我尝试滚动它。然后第12-87行出现约1个像素高。
请帮助!
好的 - 就像添加一样简单: tableView.rowHeight = 44; 在我的静态NSString * CellIdentifier = @“Cell”之后;线。 我不需要这是iOS 7,不知道为什么我需要它在iOS 8中。
答案 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之间存在差异,也许其他人可以对此有所了解?