我的肖像tableviewcell在横向上效果不佳,即使使用自动调整大小的掩码也是如此,所以我使用新的xib文件重新排列了内容。
实施这一新格局的最佳方式是什么?我使用一堆if语句来检查方向,但是看起来并不太优雅。还有更好的方法吗?
答案 0 :(得分:2)
创建两个用于纵向和横向的UITableViewCell nib文件和一个自定义类(CustomCell.h和CustomCell.m),其中UITableViewCell作为基类,两个NIB将继承并使用您的自定义单元格实现以下内容。 / p>
-(void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad) {
[[NSBundle mainBundle] loadNibNamed:@"customCell-Landscape" owner:self options:nil];
}else
{
[[NSBundle mainBundle] loadNibNamed:@"customCell-Portrait" owner:self options:nil];
}
[tableView reloadData];
}
然后在tableview数据源
中..
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @" identifier";
CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (!cell) {
if(UIInterfaceOrientationIsLandscape(self.interfaceOrientation)) {
[[NSBundle mainBundle] loadNibNamed:@"customCell-Landscape" owner:self options:nil];
}else {
[[NSBundle mainBundle] loadNibNamed:@"customCell-Portrait" owner:self options:nil];
}
}