我正在使用UITableView
带有自定义的UITableViewCell
. 现在,该单元格上只有一个标签用于测试。
我遇到的问题是,当我使用以下代码时:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
HZEventCell *eventCell = [tableView dequeueReusableCellWithIdentifier:HZ_EVENT_CELL_REUSE_IDENTIFIER];
EKEvent *event = [EKEvent eventWithEventStore:self.dataSource.eventStore];
event.title = @"Document re-write meeting";
eventCell.label.text = event.title;
NSLog(@"Event: %@", event.title);
return eventCell;
}
这会导致我的标签在应用加载时偏移,挂在屏幕边缘。如果我从我的实例中提取实际事件数据,EKEventStore
则偏移量会根据事件标题而变化。有时整个标签在单元格中居中,有时标签在屏幕左边缘的 50% 处。如果我通过 NSLog 打印 event.title 的内容,则看不到任何格式问题。
当我使用以下代码时。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
HZEventCell *eventCell = [tableView dequeueReusableCellWithIdentifier:HZ_EVENT_CELL_REUSE_IDENTIFIER];
NSString *title = event.title; //self.data[indexPath.row];
eventCell.label.text = title;
return eventCell;
}
标签显示文本没有任何问题。这不是我对数据源中的事件所做的事情,因为上面的代码让我创建了一个新事件,设置标题并将其分配给单元格的标签,这仍然给了我一个偏移量。看起来 cell.label.origin.x 等于 -25p。有谁见过这个或知道为什么会这样?我的 UITableViewCell 子类除了标题中标签的出口外没有其他代码。
请注意,我在 iOS 6 中遇到了这个问题,当我截取屏幕截图时,我恰好正在使用 iOS 7 SDK 进行此测试。