Ios 自定义uitableviewcell重置子图幅不';I don’我不能像我想的那样工作

Ios 自定义uitableviewcell重置子图幅不';I don’我不能像我想的那样工作,ios,uitableview,Ios,Uitableview,我使用nib自定义uitableviewcell,并希望自定义高亮显示的样式。当单元格高亮显示时,我希望减小单元格子视图的大小,并保持imageview在单元格中的位置不变。因此,它看起来像是缩小了imageview的框架,但图像本身保持在那里,不改变其位置 然而,这个代码片段并没有像我所希望的那样工作。有人能帮我找出哪里错了吗。任何帮助都将不胜感激 提示:imageview是self.frameView的子视图,frameView是FramebView的子视图 - (void)setHighl

我使用nib自定义uitableviewcell,并希望自定义高亮显示的样式。当单元格高亮显示时,我希望减小单元格子视图的大小,并保持imageview在单元格中的位置不变。因此,它看起来像是缩小了imageview的框架,但图像本身保持在那里,不改变其位置

然而,这个代码片段并没有像我所希望的那样工作。有人能帮我找出哪里错了吗。任何帮助都将不胜感激

提示:imageview是self.frameView的子视图,frameView是FramebView的子视图

- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated
{
    if (highlighted)
    {
        self.frameView.backgroundColor = UIColorFromRGBA(0, 0, 0, 0.1);
        CGRect rect = self.frameBgView.frame;
        rect.origin.x += 10;
        rect.size.width -= 20;
        self.frameBgView.frame = rect;

        rect = self.frameView.frame;
        rect.origin.x -= 10;
        self.frameView.frame = rect;

    }
    else
    {
        ....

    }
}
编辑:一些屏幕截图解释问题:


好的,我尝试了你的解决方案,但我得到了这样的结果:我正在发布代码以及输出的外观,如果有任何问题,请发表评论,我将删除
frameBgView
它不是必需的

代码

我没有使用自动布局。。我得到的结果是,在

在强调之后

编辑:

这是细胞结构

如图所示,在内容视图中,我添加了蓝色的框架视图,在
frameView
中,我添加了
imageView
,并且不要忘记设置内容模式
scale以填充
,还可以为
frameView
imageView
自动调整掩码大小

内容视图的自动调整掩码大小

frameView的自动调整掩码大小

imageView的自动调整掩码大小


结束编辑

试试这个
self.frameView.bounds=rectself.frameView.frame=rect,代码>替换为此行@Shan谢谢你的建议,我已经试过了,对我来说不起作用。我真的不明白你的问题。如果可能的话,请添加屏幕截图,或者确切地告诉我你的想法requirement@Shan嗨,我添加了两个截图来帮助描述我的问题。第一个截图是当单元格未突出显示时,第二个是当单元格高亮显示时。您可以看到,高亮显示时,图像不在中心,您正在更改整个单元格的边框。。看起来它已经缩小了它的框架!!嗨,姗,你的手机宽是320吗?这对我也不管用。我只是认为这是因为我使用了自动布局,然而,在我禁用了自动布局之后,看起来什么都没有改变啊哈,你说到点子上了,我知道如何修复它了,非常感谢!
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated
  {
    if (highlighted)
    {
      self.frameView.backgroundColor = [UIColor grayColor];
      CGRect rect = self.contentView.bounds;
      rect.origin.x += 15;
      rect.size.width -= 30;


    //rect = self.frameView.frame;
    // rect.origin.x -= 10;
      self.frameView.frame = rect;

   }
   else
  {
    self.frameView.backgroundColor = [UIColor whiteColor];
    CGRect rect = self.contentView.bounds;
    rect.origin.x += 10;
    rect.size.width -= 20;
    self.frameView.frame = rect;

  }

}