在iPhone上为图像添加边框

4

我有一个自定义单元格里的图片。有没有API可以给图片添加灰色边框?

提前感谢!

3个回答

6

如果您使用的是iPhone OS 3.0,您可以使用图像视图的CALayer的borderWidth和borderColor属性在图像上添加边框,如下所示:

imageView.layer.borderWidth = 4.0f;
CGColorSpaceRef space = CGColorSpaceCreateDeviceRGB();
CGFloat values[4] = {0.5, 0.5, 0.5, 1.0}; 
CGColorRef grey = CGColorCreate(space, values); 
imageView.layer.borderColor = grey;
CGColorRelease(grey);
CGColorSpaceRelease(space);

这会创建一个4像素宽的边框,颜色完全不透明,RGB值介于白色和黑色之间。


为什么不直接使用UIColor *color = [UIColor colorWithRed:0.5f Green:0.5f Blue:0.5f alpha:1.0f]; imageView.layer.borderColor = color.CGColor呢? - Kendall Helmstetter Gelner
我从一些我编写的Mac/iPhone跨平台代码中提取了这个颜色代码。除了在两个平台上都能工作之外,避免创建临时的UIColor实例来提取CGColorRef可能会带来轻微的性能和内存优势。只有在频繁绘图时才会发挥作用,在这种情况下,我建议缓存颜色空间和颜色。 - Brad Larson
在Xcode 4.6.3上的iOS 6.x中,这对单元格内的图像没有任何影响。 - Alex Zavatone

6
你可以尝试这个。
[imageView.layer setBorderColor: [[UIColor blackColor] CGColor]];
[imageView.layer setBorderWidth: 2.0];

为此,您需要导入<QuartzCore/QuartzCore.h>

奇怪,我正在使用这个,但是没有看到任何可见的变化。 cell.imageView.layer.masksToBounds = YES; // 不要忘记导入<QuartzCore/QuartzCore.h>cell.imageView.layer.cornerRadius = 5.0;cell.imageView.layer.borderColor = (__bridge CGColorRef)([UIColor blueColor]);[cell.imageView.layer setBorderWidth: 10.0f];cell.imageView.layer.borderWidth = 10.0f; - Alex Zavatone

0
我认为不行,但你可以放置一个灰色的UIView代替图片,然后将图片作为该灰色UIView的子视图添加进去。将图片设置得稍微小一些,并将其置于中心位置,通过适当设置它的frame参数,这样你只能看到背后UIView的几个像素点。这样,图片就会呈现出有边框的效果。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接