如何以正确的方式放置图标以使其完美运行?

时间:2016-02-16 04:20:00

标签: ios objective-c iphone

我的图标在模拟器中正常运行,当我在实际设备上运行6s plus然后锁定图标被隐藏。我附上两个屏幕。请给我正确的建议。     在模拟器6s中,毛绒宽度为414.I' m使用下面的代码。

if (WIDTH==414) {
    cell.txtFld_Category.frame = CGRectMake(0, 0, WIDTH/2, 47.5);
}
else {
    cell.txtFld_Category.frame = CGRectMake(0, 0, WIDTH/2 + 20, 47.5);
}
cell.txtFld_Category.layer.cornerRadius = 9.0f; 
[cell.txtFld_Category setFont:[UIFont fontWithName:kFontRegular size:18.0f]];
cell.btn_Edit.frame = CGRectMake(CGRectGetMaxX(cell.txtFld_Category.frame) + 16, 10, 24, 25);  btn_EditTransp.frame = CGRectMake(CGRectGetMaxX(cell.txtFld_Category.frame), 0, 47, 47); 
btn_Locked.frame = CGRectMake(CGRectGetMaxX(btn_EditTransp.frame) + 10, 4, 35, 35);
btn_Lockedtransp.frame = CGRectMake(CGRectGetMaxX(btn_EditTransp.frame), 0, 47, 47); 

这是模拟器上的图像

enter image description here

此处的设备图片

enter image description here

3 个答案:

答案 0 :(得分:0)

如果u子类化了tableview单元格,(你在问题中没有提到你,你是如何创建tableview单元格的),如果你不是,那么继承tableview单元格,将其命名为CustomTableViewCell例如。

CustomTableViewCell.m文件覆盖layoutSubviews方法中,如下所示

//cell creation 
+ (CustomTableViewCell *)cell
{
    NSArray *arrayOfViews = [[NSBundle mainBundle] loadNibNamed:@"CustomTableViewCell" owner:nil options:nil];
   if ([arrayOfViews count] < 1) {
      return nil;
   }
   for (id item in arrayOfViews) {
    if([item isKindOfClass:[UITableViewCell class]])
        return item;
   }
return nil;
}

//initial set up 
- (void)awakeFromNib {
   // Initialisation code
   [self.txtFld_Category setFont:[UIFont fontWithName:kFontRegular size:18.0f]];
   self.txtFld_Category.layer.cornerRadius=9.0f;
    }

- (void)layoutSubviews
{
    [super layoutSubviews];
    if (WIDTH==414)
    {
     self.txtFld_Category.frame=CGRectMake(0,0, WIDTH/2,47.5);
    }
    else {
    self.txtFld_Category.frame=CGRectMake(0,0, WIDTH/2+20,47.5);
    }

    self.btn_Edit.frame=CGRectMake(CGRectGetMaxX(cell.txtFld_Category.frame)+16,10,24,25);
    btn_EditTransp.frame=CGRectMake(CGRectGetMaxX(cell.txtFld_Category.frame),0,47,47);
    btn_Locked.frame=CGRectMake(CGRectGetMaxX(btn_EditTransp.frame)+10,4,35,35);
    btn_Lockedtransp.frame=CGRectMake(CGRectGetMaxX(btn_EditTransp.frame),0,47,47); 
}

- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
    [super setSelected:selected animated:animated];

    // Configure the view for the selected state
}

答案 1 :(得分:-1)

这就是你应该使用AutoLayout的原因。将约束添加到屏幕的右边框。

答案 2 :(得分:-1)

您似乎没有向UITableView添加任何约束。在表格视图中添加一些简单的引脚,例如将其固定在顶部,底部,前导和尾随边缘的0个点应该可以解决问题。