我试图找出如何使用UIImageView
在resizableImageWithCapInsets:
中将下拉图片放入黑色边框(仅用于居住的边框)。
我使用AutoLayout,_imageView
具有固定的高度约束
UIImage *dropdown = [[UIImage imageNamed:@"dropdown.png"]
resizableImageWithCapInsets:UIEdgeInsetsMake(0, 20, 0, 100)];
_imageView.contentMode = UIViewContentModeScaleAspectFit; // modes see below
_imageView.clipsToBounds = NO;
_imageView.layer.borderWidth = 1;
_imageView.image = dropdown;
UIViewContentModeTopLeft
UIViewContentModeScaleToFill
UIViewContentModeScaleAspectFit
UIViewContentModeScaleAspectFill
修改
我尝试按照@Rahul的建议设置顶部和底部插图,如果设置UIViewContentModeScaleToFill
我会得到什么(在其他模式下类似的结果)。正如您可能注意到的那样,白色向下箭头现在略微向下移动
UIImage *dropdown = [[UIImage imageNamed:@"dropdown.png"]
resizableImageWithCapInsets:UIEdgeInsetsMake(8, 20, 8, 100)];
修改2
更改偏移似乎对此没有帮助,问题似乎是在垂直缩放中,好像图像视图由于某种原因仅加入一个垂直偏移,而不是两者,因此我们得到非对称垂直偏移
编辑3
GitHub上的示例项目:ScaleTest-iOS
编辑4
使用自定义调整大小方法更新了GitHub示例(无可用),在Apple Dev Forum上创建topic
编辑5
接受的答案我认为这是一种解决方法,我宁愿保持固定的高度,但似乎不可能。无论如何,感谢@Rahul的帮助。
答案 0 :(得分:2)
请参阅本教程:How To Make A Stretchable Button With UIEdgeInsetsMake private func prepareContainerView() {
containerView = UIView()
view.layout(containerView).edges(top: 100, left: 20, right: 20)
//The above line is showing error
}
&为您的图像应用合适的边缘插图....
UIEdgeInsetsMake(8, 8, 8, 8)
设置 imageview4 高度35而不是40像素&然后工作得很完美......
答案 1 :(得分:0)
_imageView.contentMode = UIViewContentModeScaleAspectFit;
_imageView.layer.cornerRadius = 20; // Apply your required value.
_imageView.layer.masksToBounds = YES;
答案 2 :(得分:0)
试试这个UIEdgeInsetsMake(8,100,8,8);如果图像边界曲线的半径为20px
,则使用20px