指针在iOS中绘制像挤压气泡一样的形状

指针在iOS中绘制像挤压气泡一样的形状,第1张

概述我正在尝试制作一个小圆泡形状,在整圆和挤压形状之间切换.我遇到了 this article,它使用UIBezierPath分解为直线和圆形,形成一个带圆角的矩形.但在开始之前,我认为如果我能得到一些关于如何前进的指示会更好.例如,如果我使用UIBezierPath,那么在挤压气泡的情况下如何将路径分解为单独的曲线.我想的形状是一个椭圆形,在两个相对的两侧有凹凸起,有点像沙漏.我无法弄清楚如何制作这 我正在尝试制作一个小圆泡形状,在整圆和挤压形状之间切换.我遇到了 this article,它使用UIBezIErPath分解为直线和圆形,形成一个带圆角的矩形.但在开始之前,我认为如果我能得到一些关于如何前进的指示会更好.例如,如果我使用UIBezIErPath,那么在挤压气泡的情况下如何将路径分解为单独的曲线.我想的形状是一个椭圆形,在两个相对的两侧有凹凸起,有点像沙漏.我无法弄清楚如何制作这种形状.任何指针将不胜感激.解决方法 创建UIBezIErPath的Swift 2代码:

var borderWIDth : CGfloat = 4 // Should be less or equal to the `radius` propertyvar radius : CGfloat = 10var triangleHeight : CGfloat = 15private func bubblePathForContentSize(contentSize: CGSize) -> UIBezIErPath {    let rect = CGRectMake(0,contentSize.wIDth,contentSize.height).offsetBy(dx: radius,dy: radius + triangleHeight)    let path = UIBezIErPath();    let radius2 = radius - borderWIDth / 2 // Radius adjasted for the border wIDth    path.movetoPoint(CGPointMake(rect.maxX - triangleHeight * 2,rect.minY - radius2))    path.addlinetoPoint(CGPointMake(rect.maxX - triangleHeight,rect.minY - radius2 - triangleHeight))    path.addArcWithCenter(CGPointMake(rect.maxX,rect.minY),radius: radius2,startAngle: CGfloat(-M_PI_2),endAngle: 0,clockwise: true)    path.addArcWithCenter(CGPointMake(rect.maxX,rect.maxY),startAngle: 0,endAngle: CGfloat(M_PI_2),clockwise: true)    path.addArcWithCenter(CGPointMake(rect.minX,startAngle: CGfloat(M_PI_2),endAngle: CGfloat(M_PI),startAngle: CGfloat(M_PI),endAngle: CGfloat(-M_PI_2),clockwise: true)    path.closePath()    return path}

你可以用这条路做任何你想做的事.例如,使用它来设置CAShapeLayer,然后将其添加到视图中:

bubbleLayer.path = bubblePathForContentSize(contentVIEw.bounds.size).CGPathbubbleLayer.fillcolor = fillcolor.CGcolorbubbleLayer.strokecolor = bordercolor.CGcolorbubbleLayer.linewidth = borderWIDthbubbleLayer.position = CGPoint.zeromyVIEw.layer.addSublayer(bubbleLayer)

@L_301_2@

总结

以上是内存溢出为你收集整理的指针在iOS中绘制像挤压气泡一样的形状全部内容,希望文章能够帮你解决指针在iOS中绘制像挤压气泡一样的形状所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1024443.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存