在UIImageView的边界之外设置边框

时间:2014-08-13 12:56:29

标签: ios objective-c uiimageview

我的XIB文件中有一个UIImageView。尺寸为50x50。

在视图代码中,我有以下内容:

self.pic.layer.borderColor = _a_color_;
self.pic.layer.borderWidth = 3.0f;
self.pic.layer.shadowColor = _a_color_;
self.pic.layer.shadowOpacity = 0.30f;
self.pic.layer.shadowOffset = CGSizeMake(0.0f, 1.0f);
self.pic.layer.shadowRadius = 1.0f;
UIBezierPath *path = [UIBezierPath bezierPathWithRect:self.pic.bounds];
self.pic.layer.shadowPath = path.CGPath;

我的问题是边框是在图像内绘制的,问题是这样的 我从我的图像中丢失了6(2x3.0)点(两个维度)。

在图像边界外设置边框的正确方法是什么?

第二种选择是缩小图像(通过2xborderWidth)。怎么办?

2 个答案:

答案 0 :(得分:0)

最简单的方法是在另一个视图上绘制图像视图,该视图的图像比图像视图略大,并为该视图的背景颜色设置所需的颜色。在您的情况下,背景视图的大小应为{56,56},并且您的图像视图应该以该视图为中心。并且,不要忘记删除图层操作。祝你好运!

答案 1 :(得分:0)

这将有助于您:)

// setting ImageViewBorder Width, here i used 5.0f

self.yourImageView.layer.borderWidth = 5.0f;

// setting ImageViewBorder Color 

self.yourImageView.layer.borderColor = [UIColor lightTextColor].CGColor;