gpt4 book ai didi

ios - 如何使用 uibezierpath 绘制 uiview 的底部曲线?

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:19:58 25 4
gpt4 key购买 nike

我尝试使用 uibezierpath 在 UIimageview 上绘制底部曲线。我不知道该怎么做?

    - (void)setMaskTo:(UIView*)view byRoundingCorners: 
(UIRectCorner)corners
{
UIBezierPath *rounded = [UIBezierPath
bezierPathWithRoundedRect:view.bounds

byRoundingCorners:corners

cornerRadii:CGSizeMake(200.0, 200.0)];
CAShapeLayer *shape = [[CAShapeLayer alloc] init];
[shape setPath:rounded.CGPath];
view.layer.mask = shape;
}

我已经试过了https://imgur.com/a/WKykdyU

我期望 https://imgur.com/a/BqETMlc 的输出

最佳答案

这应该可以帮助您开始...

enter image description here

使用UIBezierPath:

  • 移动到点A
  • 将四边形曲线添加到点 B 和控制点 C
  • 添加线到点 D
  • 添加线到点 E
  • 关闭路径

这是一个简单的 UIView 子类:

@implementation BottomCurveView

- (void)layoutSubviews {
[super layoutSubviews];

CGRect rect = self.bounds;
CGFloat y = rect.size.height - 80.0;
CGFloat curveTo = rect.size.height;

UIBezierPath *myBez = [UIBezierPath new];
[myBez moveToPoint:CGPointMake(0.0, y)];
[myBez addQuadCurveToPoint:CGPointMake(rect.size.width, y) controlPoint:CGPointMake(rect.size.width / 2.0, curveTo)];
[myBez addLineToPoint:CGPointMake(rect.size.width, 0.0)];
[myBez addLineToPoint:CGPointMake(0.0, 0.0)];
[myBez closePath];

CAShapeLayer *maskForPath = [CAShapeLayer new];
maskForPath.path = myBez.CGPath;
[self.layer setMask:maskForPath];
}

@end

这会生成 200 磅高 View 的上述图像。

关于ios - 如何使用 uibezierpath 绘制 uiview 的底部曲线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57788503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com