Ios 如何在iPhone中的UIView中间创建锐边

Ios 如何在iPhone中的UIView中间创建锐边,ios,objective-c,Ios,Objective C,我有多张照片。当用户选择一个特定的图像时,我必须用顶部有箭头的视图高亮显示该图像。它将通过使用一个顶部有尖锐箭头边缘的图像来解决,但我想使用uiview来实现。 如何在iPhone中使用核心图形在UIView的中上部创建一个锐利的箭头边缘。就像iPad上的popover锋利的箭头一样 有人能帮我吗。 提前感谢。如果它的应用程序适用于iPad,您可以使用uipopovercontroller。对于iphone u,您可以在github上找到各种控件。您可以使用UIView作为容器,并将UIView

我有多张照片。当用户选择一个特定的图像时,我必须用顶部有箭头的视图高亮显示该图像。它将通过使用一个顶部有尖锐箭头边缘的图像来解决,但我想使用uiview来实现。 如何在iPhone中使用核心图形在
UIView
的中上部创建一个锐利的箭头边缘。就像iPad上的popover锋利的箭头一样

有人能帮我吗。
提前感谢。

如果它的应用程序适用于iPad,您可以使用uipopovercontroller。对于iphone u,您可以在github上找到各种控件。您可以使用UIView作为容器,并将UIView背景设置为透明。接下来,在容器中添加一个子UIView,并在顶部边缘添加一个箭头(UIImageView)。

试试这个,它真的很有趣 ,

是的,您可以使用UIView来完成此操作。使用创建所需的路径

然后将路径添加到图形上下文中,并根据需要填充颜色

示例代码如下所示:

#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,如下所示

请注意:

  • 您可以根据需要更改路径
  • 视图的背景色应为清晰的颜色

谢谢..但我必须使用一个uiview…我认为使用coregraphics是可能的..但我不知道如何使用coregraphics来获得这样的输出..谢谢..但我必须使用uiview而不是Popover..然后,Github的us TSpopover控件请给出一个示例图像并解释为什么不能在上使用第三方解决方案github.我没有足够的声誉来发布图片..我不明白为什么我会被否决…如果我的问题不好,那么建议我..请不要对我的问题进行否决..谢谢..因为你的问题不清楚,而且似乎质量很低.谢谢@Divyu..实际上我是为了发布一张关于我的问题的图片.但是有一个由于声誉不佳,发布图像时出现问题。再次感谢。谢谢。我知道popover。但我想让使用核心图形的uiview而不是popover成为可能。建议如何调用draw rect?你能在ViewDidLoad中调用它并在视图的框架中传递吗?你不需要显式调用draw rect方法。你能帮助我,如何使用向下箭头绘制它吗?你只需要更改点并使用bezierpath。