我有一个自定义 UITableviewCell xib,与我的 uitableview 连接,我会这样做:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"MyCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
[[NSBundle mainBundle] loadNibNamed:@"MyCustomCell" owner:self options:nil];
cell = myCell;
self.myCell = nil;
}
[self configureCell:cell atIndexPath:indexPath];
return cell;
}
然后当改变设备的方向时,我想改变我的自定义 UITableViewCell 中某些元素的位置,所以在这个方法中:
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
if (UIInterfaceOrientationIsLandscape(toInterfaceOrientation)) {
CGRect myframe = CGRectMake(600, self.arrowLabel.frame.origin.y, self.arrowLabel.frame.size.width, self.arrowLabel.frame.size.height);
self.arrowLabel.frame = myframe;
} else {
CGRect myframe = CGRectMake(400, self.arrowLabel.frame.origin.y, self.arrowLabel.frame.size.width, self.arrowLabel.frame.size.height);
self.arrowLabel.frame = myframe;
}
}
我更改了与我的 UITableViewCell xib 连接的 arrowLabel 的 frame.origin.y 和 frame.origin.y,但只更改了 tableview 的最后一行的位置,另一行中的另一个标签保持在相同的位置,所以我的问题是如何重新加载表格视图?...我也尝试过 [self.tableview reloadData];...但不工作...任何想法?