即使使用自动调整大小的蒙版,我的肖像tableviewcell在横向上也无法很好地工作,因此我使用新的xib文件重新排列了东西。

实施这种新格局的最佳方法是什么?我使用一堆if语句检查方向来使其工作,但这似乎不太优雅。有没有更好的办法?

最佳答案

创建两个用于人像和风景的UITableViewCell nib文件,以及一个以UITableViewCell作为基类的自定义类(CustomCell.h和CustomCell.m),这两个NIB将继承该基类,并使用自定义单元实现以下内容。

-(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];
        }

    }

关于iphone - 为uitableviewcell加载横向和纵向xib文件的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12400317/

10-11 04:35