【发布时间】:2012-07-17 17:10:12
【问题描述】:
我想为图像添加边框。我不想将它完全添加到 4 个方面。我只想在特定的 3 个边上添加边框,即顶部、左侧和底部。该怎么做?
[imageView.layer setBorderColor:[[UIColor clearColor] CGColor]];
这将在图像的 4 侧设置边框。但我只希望它在 3 个方面。该怎么做?
【问题讨论】:
标签: iphone ios ios5 uiimageview border
我想为图像添加边框。我不想将它完全添加到 4 个方面。我只想在特定的 3 个边上添加边框,即顶部、左侧和底部。该怎么做?
[imageView.layer setBorderColor:[[UIColor clearColor] CGColor]];
这将在图像的 4 侧设置边框。但我只希望它在 3 个方面。该怎么做?
【问题讨论】:
标签: iphone ios ios5 uiimageview border
您需要在想要设置边框的边缘添加彩色子视图。请参阅this answer——对于顶部的边框,遵循相同的模式,但使用autoresizingMask 或UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin。
【讨论】:
确保 UIImageView 的 clipsToBounds 设置为 YES。创建一个边框宽度比图像宽的 UIView。将该图层上的边框设置为所需的颜色。将此视图的框架设置为 0,0、imageWidth+border、image.height 并设置 maskToBounds = YES。将此作为子视图添加到您的 UIImageView。它应该在除右侧之外的所有区域设置边框。
【讨论】:
您可以在实际图像层后面绘制一个高 2 像素、宽 1 像素的填充 CALayer。将框架设置为图像上方和左侧 1 像素。
【讨论】:
用阴影操作视图,这很容易做到
_topInfoView.layer.masksToBounds = NO;
_topInfoView.layer.shadowOffset = CGSizeMake(0, 1);
_topInfoView.layer.shadowColor = [[UIColor grayColor]CGColor];
_topInfoView.layer.shadowRadius = 0.27f;
_topInfoView.layer.shadowOpacity = 0.6;
【讨论】: