2

我需要在我的应用程序中处理方向(纵向 - 横向)。我的屏幕的基本布局是 UIView -> UIImageView -> UITableView (Background = ClearColor) (在那个 z 顺序中),所以看起来表格有背景图像。

我需要执行以下操作:

  • 两种模式下 UIImageView 中的不同图像。
  • 表格中的每个单元格需要并排放置 3/4 个图像(纵向 3 个,横向 4 个)。

所有这些都需要在界面构建器中完成(尽可能地)。

到目前为止我已经尝试过:

  • IB 确实为您提供了视图方向的选项。但我找不到为每个方向设置不同图像的方法。
  • 遵循一个层次结构,我从一个基类派生 2 个单独的 VC(带有 2 个单独的 NIB)。唯一的问题是这是一个通用版本,所以我必须为 iPad 和 iPhone 中的每个视图执行此操作。

还有其他更好的方法吗?如果不是,第二个选项更好吗?这种方法有什么问题吗?

4

2 回答 2

0

您想要实现的是根据 xib 中的方向添加不同的视图,简短的回答是您不能,

但是,您可以实现 2 个 Xib,每个方向一个 xib 请参阅此问题的答案以获得进一步解释 支持多个方向的最简单方法是什么?当应用程序处于横向时,如何加载自定义 NIB?

这对你有用吗?

于 2012-05-22T06:34:57.257 回答
0

请查看以下代码,它也支持方向

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"CountryCell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];

    //    NSString *continent = [[self.countries allKeys] objectAtIndex:indexPath.row];
    NSString *continent1 = [self tableView:tableView titleForHeaderInSection:indexPath.section];
    NSLog(@"Contine............%@", continent1);
    int k = [[self.countries valueForKey:continent1] count];
    UIScrollView *previewScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, cell.contentView.frame.size.width, 250)];
    previewScrollView.backgroundColor = [UIColor clearColor];
    previewScrollView.pagingEnabled = TRUE;
    previewScrollView.autoresizingMask = UIViewAutoresizingFlexibleWidth;
    [previewScrollView setContentSize:CGSizeMake(250*k, 60.0)];
    previewScrollView.showsHorizontalScrollIndicator = YES;
    NSLog(@"cell.contentView.frame.size.widt  %f",cell.contentView.frame.size.width);
    NSLog(@"K %@   %d",continent1,  k);
    for(int i=0 ; i<k; i++ ){

        imageView.image = [UIImage imageNamed:[[self.countries valueForKey:continent1] objectAtIndex:i]];
        imageView.contentMode = UIViewContentModeCenter;
        [previewScrollView addSubview:imageView];

        UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
        btn.frame = CGRectMake(250.0*i, 10, 200, 250);
        NSLog(@"%@", [NSString stringWithFormat:@"%d%d",indexPath.section,i]);
        btn.tag = [[NSString stringWithFormat:@"%d%d",indexPath.section,i] intValue];
        [btn addTarget:self action:@selector(btnTapped:) forControlEvents:UIControlEventTouchDown];
        [previewScrollView addSubview:btn];
    }

    [[cell contentView] insertSubview:previewScrollView atIndex:0];
    // [cell addSubview:previewScrollView];

}
return cell;
}
于 2012-05-22T07:09:42.430 回答