我有多张图片。当用户选择特定图像时,我必须使用顶部有箭头的视图突出显示该图像。它将简单地通过使用顶部具有锐箭头边缘的图像来解决,但我想使用uiview来实现。
如何使用iPhone中的核心图形在UIView
的顶部中间创建一个清晰的箭头边缘。就像iPad中的popover sharp arrow edge。
任何人都可以帮助我。 提前谢谢。
答案 0 :(得分:10)
是的,您可以使用UIView来完成此操作。使用UIBezierPath
创建所需的路径然后将路径添加到图形上下文并填充它将为您想要的颜色。
示例代码如下所示:
#define kArrowHeight 50
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
UIBezierPath *fillPath = [UIBezierPath bezierPath];
[fillPath moveToPoint:CGPointMake(0, self.bounds.origin.y+kArrowHeight)];
[fillPath addLineToPoint:CGPointMake(self.bounds.size.width/2-(kArrowHeight/2), kArrowHeight)];
[fillPath addLineToPoint:CGPointMake(self.bounds.size.width/2, 0)];
[fillPath addLineToPoint:CGPointMake(self.bounds.size.width/2+(kArrowHeight/2), kArrowHeight)];
[fillPath addLineToPoint:CGPointMake(self.bounds.size.width, kArrowHeight)];
[fillPath addLineToPoint:CGPointMake(self.bounds.size.width, self.bounds.size.height)];
[fillPath addLineToPoint:CGPointMake(0, self.bounds.size.height)];
[fillPath closePath];
CGContextAddPath(context, fillPath.CGPath);
CGContextSetFillColorWithColor(context, [UIColor greenColor].CGColor);
CGContextFillPath(context);
}
上面的代码将为您提供一个视图,其中包含UIView中间的尖锐边缘,看起来像popover,如下所示。
请注意:
答案 1 :(得分:2)
答案 2 :(得分:0)
如果它的iPad应用程序你可以使用uipopovercontroller。否则你可以在github上找到各种控件
答案 3 :(得分:0)
您可以使用UIView作为容器,并将UIView背景设置为透明。接下来,在容器中添加一个子UIView,在顶部边缘添加一个箭头(UIImageView)。