我正在通过nib文件构建UITableViewCell
。我还有一个相应的UITableViewCell
子类,nib的出口连接到它。
我需要动态调整大小UIImageView
(仅宽度)作为tableviewcell标签的背景。有没有办法可以通过autolayout实现?
我尝试将imageview设置为代码中标签的子视图:
[theLabel sizeToFit]
CGRect boundingRect = [theLabel.text boundingRectWithSize: theLabel.frame.size options:NSStringDrawingUsesLineFragmentOrigin attributes:0 context:0];
UIImageView *background = [[UIImageView alloc]initWithFrame:boundingRect];
background.image = [UIImage imageNamed: @"validImageName"]];
[theLabel addSubview: background];
然而,这不会产生正确的帧。我还考虑使用[UIColor colorWithPatternImage: @"aValidImageName"];
设置标签的背景,但这不包括背景图像上的填充。此外,背景图像包含我想要保留的圆角(此方法切割)。任何想法都表示赞赏。
答案 0 :(得分:0)
试试这个,
1)您可以使用自动调整来根据屏幕大小更改图像宽度。
<强>(OR)强>
2)为您的imageview设置自定义框架
例如:
UIImageView *background = [[UIImageView alloc]initWithFrame:(0,0,Your_Custom_Width_Size_Value,100)];
background.image = [UIImage imageNamed: @"validImageName"]];
[theLabel addSubview: background];
(or)
//根据标签
更改宽度UIImageView *background = [[UIImageView alloc]initWithFrame:(0,0,Your_Label_Name.frame.size.width,100)];
background.image = [UIImage imageNamed: @"validImageName"]];
[theLabel addSubview: background];
答案 1 :(得分:0)
我建议你使用UIView对象作为容器,并将UIImageView和UILabel作为子视图添加到它。向图像视图和标签添加约束,使其高度和宽度始终等于超视图。然后只需给容器UIView你想要的任何帧。