Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ios7 uitableviewcell图像左偏移量_Ios_Uitableview - Fatal编程技术网

ios7 uitableviewcell图像左偏移量

ios7 uitableviewcell图像左偏移量,ios,uitableview,Ios,Uitableview,在iOS 6及更早版本中,uitableviewcell的imageView一直位于左侧,偏移量为0。在iOS 7中,这一点已经改变,现在有15点的空间。我想像在iOS 6中一样定位imageView。我已经用AKHighlightableAttributedCell对uitableviewcell进行子类化,以处理未高亮显示的属性文本。因此,根据一些搜索,我添加了: - (void) layoutSubviews { [super layoutSubviews]; // Mak

在iOS 6及更早版本中,uitableviewcell的imageView一直位于左侧,偏移量为0。在iOS 7中,这一点已经改变,现在有15点的空间。我想像在iOS 6中一样定位imageView。我已经用AKHighlightableAttributedCell对uitableviewcell进行子类化,以处理未高亮显示的属性文本。因此,根据一些搜索,我添加了:

- (void) layoutSubviews
{
    [super layoutSubviews];
    // Makes imageView get placed in the corner
    self.imageView.frame = CGRectMake( 0, 0, 80, 80 );
}

问题是其他一切都还没有得到重新定位,所以我认为必须有更好的方法来做到这一点。我读过一些人提到使用负偏移来移动所有对象,但我不确定这将如何处理约束,因为它需要为每个方向进行适当的缩放。有没有一个更简单的解决办法,我错过了?谢谢。

看来我是用正确的方法做的。关于字段之间分隔符的缺失部分是在iOS 7上设置插图。您可以在viewdidload或viewwillload中执行此操作,并设置self.tableView.separatorInset=UIEdgeInsetsMake(0,0,0,0)

如果运行iOS 7或更高版本,您需要添加一个检查,因为我相信这是一个新属性。更好的选择可能是在情节提要中设置它,方法是选择表视图,然后将分隔符插入从默认设置为自定义

以下是重新定位imageView和textLabel的layoutSubviews方法。如果你有一个描述,也加上它

- (void) layoutSubviews
{
    [super layoutSubviews];
    // Makes imageView get placed in the corner
    self.imageView.frame = CGRectMake( 0, 0, 80, 80 );

    // Get textlabel frame
    //self.textLabel.backgroundColor = [UIColor blackColor];
    CGRect textlabelFrame = self.textLabel.frame;

    // Figure out new width
    textlabelFrame.size.width = textlabelFrame.size.width + textlabelFrame.origin.x - 90;
    // Change origin to what we want
    textlabelFrame.origin.x = 90;

    // Assign the the new frame to textLabel
    self.textLabel.frame = textlabelFrame;
}

如果您想要自定义布局,那么这是正确的方法。你只需要设置标签的框架就可以了。也许更好的问题是这个。我添加了//Get textlabel frame CGRect textlabelFrame=self.textlabel.frame;textlabelFrame.origin.x=90;self.textLabel.frame=textlabelFrame;它负责标题的位置。但是我在想,如果标题足够长的话,左边的内容也会改变吗?此外,还有分隔单元格的边框,我不知道该视图或属性的名称。感谢您的帮助。这是阻止iOS7在单元格任一侧添加填充的唯一方法。imageView是对单元格进行子类化并应用上述内容,因为默认行为不会响应将imageView边框和插入设置为零?如果有,我找不到它。这是一个有点痛苦,如果他们能为它公开一个选项,那将是一件好事。我觉得对于tableviewcells的无边界图像来说,这是一个巨大的痛苦,但至少可以绕过它。到目前为止,我还没有发现我实现它的方式有任何问题。不过,如果有更好的答案,我愿意接受。