我有一个UIImageView
,我不想让图像“接触"视图的边缘,而是在它周围有一些”填充“。然而,我尝试了以下方法,出于某种原因,它没有改变:
@IBOutlet weak var pictureOutletOne: UIImageView!
//set the image
pictureOutletOne.image = UIImage(named: itemOne)
//set the padding
pictureOutletOne.layoutMargins = UIEdgeInsetsMake(10, 10, 10, 10);
我也试过:
pictureOutletOne.translatesAutoresizingMaskIntoConstraints = false
pictureOutletOne.layoutMargins = UIEdgeInsets(top: 10, left: 100, bottom: 10, right: 0)
我读了很多关于这个的文章,但是这些是我找到的解决方案,但是它们不起作用。
非常感谢。
6条答案
按热度按时间kx5bkwkv1#
Swift 4.2和5
插入值应为负值
hmae6n7t2#
您可以将imageView插入到视图中,并设置对边的约束,保证方法:)
xxhby3vn3#
在新类中重写
alignmentRectInsets
属性:qyyhg6bp4#
下面是我构建的一个小助手扩展:
gtlvzcf85#
idv4meu86#
Swift 5
在图像视图中的图像位置的右侧和左侧添加填充。
注解:UIStackView将对齐插图视为图像视图固有内容大小的贡献者。
`Use case example:
In my application, I have a vertical stack comprised of a small center-aligned
UILabel
stacked above aUIImageView
in aUITableViewCell
. Label width varies from cell to cell, varying respective vertical stack widths and shifting images' respective horizontal alignments. I.e. the images don't line up in the table.... By padding images with horizontal alignment insets, it forces vertical stack to have a consistent width greater than max expected label width, keeping images center-aligned vertically in the table.`