展开UITableView Cell以适应Iphone 6屏幕

时间:2015-06-30 03:49:13

标签: ios objective-c uitableview autolayout

使用自动布局我有一个包含UITableViewCell的nib文件。单元格包含一个图像,它拥抱屏幕的右侧,它为iPhone 5而不是6(它朝向屏幕的中间)。我有四个限制因素:

  • 顶部空间
  • 底部空间
  • 宽度

我也尝试在

中设置框架
- (void)awakeFromNib {
    [self setFrame:CGRectMake(0, 0, [[UIScreen mainScreen]bounds].size.width, 95)];
}

4 个答案:

答案 0 :(得分:0)

希望这会对你有所帮助, 我一直困惑到你要求的东西

如果你的单元格不适合屏幕,那么给它适当的约束,如果你通过nib制作自定义单元格,如果你以编程方式制作单元格,那么也通过代码给出约束。您可以使用Autolayout Constraints工具来简化此过程。

如果你想改变那个图像的约束w.r.t diff。设备,然后此代码将帮助您

@property (weak, nonatomic) IBOutlet NSLayoutConstraint *trailingSpace;



  -(void)viewDidLayoutSubviews
    {

        if([UIScreen mainScreen].bounds.size.height<=568)
        {

        }
        else
        {
        self. trailingSpace.constant = what_ever_value(like,60);
        }
}

答案 1 :(得分:0)

在TableViewController中为表提供约束。添加这些约束:

  • 追踪空间到superview
  • 领导空间到superview
  • 超级视图的顶层空间
  • 超级视图的底部空间

答案 2 :(得分:0)

对于自动布局,您应该将这些约束用于图像视图。

1)追踪到Superview

2)超级视图的顶部

3)从底层到超级视图

4)纵横比自我

并使表格视图单元格高度动态化以便在iPhone 6中正确显示,您应该使用它。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    //calculating the height according to the device height.
    return self.view.frame.size.height * (80.0 / 568.0);
}

这里我在故事板中设计了320x568屏幕,因此我拍摄了568.0。 通过这种方式,您的图像将在iPhone 6中以及与iPhone 5中现在观看时完全相同的比例进行查看。

答案 3 :(得分:-1)