gpt4 book ai didi

iOS:UIView 外的实心边框

转载 作者:搜寻专家 更新时间:2023-11-01 05:37:54 28 4
gpt4 key购买 nike

borderWidthborderColor 属性在 View 内部 绘制边框。 Remykits 指出了这一点 here .

layershadow... 属性不能用于创建同时出现在所有四个边上的边框 并且不透明的,原因我已经展示了here .

我在那个问题中没有说明的(也是我打开一个新问题的原因)是我希望边框在 View 之外。正如建议的那样,增加 View 的 frame 以补偿丢失的空间是行不通的;我使用的是 UIImageView,因此即使增加了 frameimage 仍会被裁剪。

另一个建议是将 UIImageViewcontentMode 更改为 .Center,同时更改 View 的大小,但这不起作用,因为 View 尺寸不合适。

我首先想到的解决方案是在这个UIImageView“后面”再创建一个UIView,并给它一个backgroundColor来模拟效果的边界。我还考虑过创建 UImageView 的自定义子类。然而,这两种操作都涉及根据 View 的 frame 进行计算。 frame 没有在适当的时间被 AutoLayout 设置等等,我遇到了很多问题。

想到的其他事情是以数字方式为图像添加边框或将图像定位在 UIImageView 的特定部分。 (我对后者的尝试是 imageView.layer.contentsRect = CGRectInset(imageView.bounds, 4, 4),这导致了奇怪的像素化图像。)

明确地说,我正在寻找的是: enter image description here

确实感觉应该有一种比创建新类或 View 更简单的方法来做到这一点。任何帮助表示赞赏。

最佳答案

啊哈!将 aykutt 关于调整图像大小和更改 conentMode 的评论与 Paul Lynch 的 answer 拼接在一起关于调整图像大小,以及 rene 的(救生)answer关于您的 subview 实际上没有viewDidLayoutSubviews 中布局的内容:

override func viewDidLayoutSubviews() {

super.viewDidLayoutSubviews()

self.myContainer.setNeedsLayout()
self.myContainer.layoutIfNeeded()

var width: CGFloat = 4 //the same width used for the border of the imageView
var rect = CGRectInset(imageView.bounds, width, width)
var size = CGSizeMake(rect.width, rect.height)
UIGraphicsBeginImageContextWithOptions(size, false, 0.0)
image.drawInRect(CGRectMake(0, 0, size.width, size.height))
var new = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
self.imageView.contentMode = .Center
self.imageView.image = new

}

关于iOS:UIView 外的实心边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34667344/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com