我使用nib自定义了一个uitableviewcell,并希望自定义突出显示的样式。当单元格突出显示时,我想减小单元格子视图的大小,并保持单元格中图像视图的位置不变。因此,看起来像是图像视图的框架缩小了,但图像本身不会改变其位置。
但是,这段代码片段不能正常工作。有人可以帮我弄清楚我错在哪里。任何帮助将不胜感激!
提示:imageview是self.frameView的子视图,frameView是frameBgView的子视图。
- (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
{
....
}
}
编辑:一些截图来解释这个问题:
答案 0 :(得分:1)
oky我尝试了你的解决方案,但我得到这样的我发布代码以及输出它看起来如何,如果有任何问题只是评论,我被删除frameBgView
它不是必需的
码
- (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;
}
}
我没有使用自动布局..我得到的结果是,
之前
并突出显示后,
修改强>
这是细胞结构
正如你在图片中看到的那样,content view
我添加了frameView
这是蓝色的,并且在frameView
内我添加了imageView
并且还没有&# 39;忘记设置内容模式scale to fill
并自动调整frameView
和imageView
的屏蔽大小,例如
自动调整content view
自动调整frameView
自动调整imageView
结束编辑