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