标签: uibezierpath

在笔画动画中更改方向

我想恢复路径绘图的方向.所以我从ValueValue改为了值,但现在在动画开始时可以看到完整路径并且它开始消失.我有路径:

UIBezierPath* bezierPath = [UIBezierPath bezierPath];


    [bezierPath moveToPoint: CGPointMake(213.79, 170.83)];
    [bezierPath addCurveToPoint: CGPointMake(131.93, 95) controlPoint1: CGPointMake(212.14, 128.68) controlPoint2: CGPointMake(176.13, 95)];
    [bezierPath addCurveToPoint: CGPointMake(50, 173.85) controlPoint1: CGPointMake(86.68, 95) controlPoint2: CGPointMake(50, 130.3)];
    [bezierPath addCurveToPoint: CGPointMake(131.93, 252.7) controlPoint1: CGPointMake(50, 217.4) controlPoint2: CGPointMake(86.68, 252.7)];
    [bezierPath addCurveToPoint: CGPointMake(157.55, 248.76) controlPoint1: CGPointMake(140.88, 252.7) controlPoint2: CGPointMake(149.49, 251.32)];
    [bezierPath addCurveToPoint: CGPointMake(209.69, 281) controlPoint1: CGPointMake(166.59, 267.78) controlPoint2: CGPointMake(186.54, 281)];
    [bezierPath addCurveToPoint: CGPointMake(267, 225.85) controlPoint1: CGPointMake(241.34, 281) controlPoint2: CGPointMake(267, 256.31)];
    [bezierPath addCurveToPoint: CGPointMake(213.79, 170.83) controlPoint1: CGPointMake(267, 196.71) controlPoint2: CGPointMake(243.53, 172.86)]; …
Run Code Online (Sandbox Code Playgroud)

core-animation core-graphics cabasicanimation ios uibezierpath

0
推荐指数
1
解决办法
2165
查看次数

如何在iOS中的图像上绘制UIBezierPath?

实现这一目标的最简单,性能最低的方法是什么?

现在我有一个超过60000行的UIBezierPath.我想从中创建一个图像,稍后将在屏幕上移动并拉伸.

objective-c ios uibezierpath

0
推荐指数
1
解决办法
3730
查看次数

UIBezierPath和渐变iOS

我有值的路径,我想制作这个渐变.

这是代码:

    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextSetStrokeColorWithColor(context, [[UIColor colorWithRed:245.0/255.0 green:245.0/255.0 blue:171.0/255.0 alpha:0.6] CGColor]);
    CGContextSetFillColorWithColor(context, [[UIColor colorWithRed:245.0/255.0 green:245.0/255.0 blue:171.0/255.0 alpha:0.6] CGColor]);



    UIBezierPath *aPath = [UIBezierPath bezierPath];
    [aPath moveToPoint:CGPointMake(30.0, 100.0)];


    [aPath addLineToPoint:CGPointMake(200.0, 120.0)];
    [aPath addLineToPoint:CGPointMake(300, 210)];
    [aPath addLineToPoint:CGPointMake(300, 420)];
    [aPath addLineToPoint:CGPointMake(30, 420.0)];
    [aPath addLineToPoint:CGPointMake(30, 100.0)];

    [aPath closePath];
    [aPath fill];
Run Code Online (Sandbox Code Playgroud)

有没有指出这个代码的问题?

gradient ios uibezierpath

0
推荐指数
1
解决办法
3038
查看次数

如何使用一个UIBezierPath创建两个不同颜色的笔划

我试图UIView用手指画线,它用一种颜色很好.如果我尝试更改颜色并再次绘制,则之前的UIBezierPath颜色也会更改为新颜色.因此,我无法绘制不同的颜色线,保持前一个颜色线UIView

我将所有属性(path,linecolor)设置为非原子和强大的属性 UIView

以供参考:

我的第一次抽奖:在此输入图像描述

我的第二次抽奖:在此输入图像描述

我的第三次抽奖: 在此输入图像描述

选择颜色后,我在颜色选择器委托方法中更改了我的UIView的描边颜色:

#pragma mark - FCColorPickerViewControllerDelegate Methods

-(void)colorPickerViewController:(FCColorPickerViewController *)colorPicker didSelectColor:(UIColor *)color {

      self.drawView.lineColor = color; //this works fine 

 //    self.drawView.path=[UIBezierPath bezierPath];  tried this to create new bezier path with new color, but this erases the olde bezier path and return new
//    [self.drawView.lineColor setStroke];     tried this
//    [self.drawView.lineColor setFill];  tried this

      [self dismissViewControllerAnimated:YES completion:nil]; //dismiss the color picker
}
Run Code Online (Sandbox Code Playgroud)

这是我的绘图方法:

- (id)initWithCoder:(NSCoder *)aDecoder 
{
    if (self = [super initWithCoder:aDecoder]) …
Run Code Online (Sandbox Code Playgroud)

objective-c uiview ios uibezierpath

0
推荐指数
1
解决办法
4104
查看次数

使用bezierPathWithOvalInRect绘制时边框被剪裁

我在我的自定义UIView的drawRect中绘制了一个圆圈:

- (void)drawRect:(CGRect)rect {
  ...
  UIBezierPath *ovalPath = [UIBezierPath bezierPathWithOvalInRect:rect];
  [UIColor.whiteColor setStroke];
  ovalPath.lineWidth = 1;
  [ovalPath stroke];
}
Run Code Online (Sandbox Code Playgroud)

椭圆形总是夹在边缘上.我怎样才能避免剪辑?是唯一的方法是插入矩形吗?

objective-c uikit drawrect ios uibezierpath

0
推荐指数
1
解决办法
350
查看次数

在Core Graphics中创建带有多个彩色线段的​​圆

我正在尝试绘制一个饼图,该饼图由大小相等的段组成,每个段的颜色不同。我以此为基础建立我的代码:在SWIFT中绘制圆弧段进度

let circlePath = UIBezierPath(ovalInRect: CGRect(x: 200, y: 200, width: 150, height: 150))
var segments: [CAShapeLayer] = []
let segmentAngle: CGFloat = 1.0 / CGFloat(totalSegments)

for var i = 0; i < totalSegments; i++ {
    let circleLayer = CAShapeLayer()
    circleLayer.path = circlePath.CGPath

    // start angle is number of segments * the segment angle
    circleLayer.strokeStart = segmentAngle * CGFloat(i)

    //create a gap to show segments
    let gapSize: CGFloat = 0.008
    circleLayer.strokeEnd = circleLayer.strokeStart + segmentAngle - gapSize

    circleLayer.lineWidth = 10 …
Run Code Online (Sandbox Code Playgroud)

core-graphics ios uibezierpath swift

0
推荐指数
1
解决办法
1682
查看次数

'显示缩放'iPhone 6/6s设置模糊图形

我正在Xcode 7/Swift 2中编写一个项目,它针对iPhone 6/6s进行了优化(即该项目有一个启动屏幕文件和iPhone 6/6s的启动屏幕图像).

幸运或不幸的是,iPhone 6用户可以在设备上打开"显示缩放"设置,从而放大界面元素.打开时,此设置有效地扩大了标准iPhone 5屏幕尺寸以适应iPhone 6屏幕空间,上采样到x1.171875.此上采样会导致基于栅格的元素(如图像,图标或包含UIBezierPath()绘图的视图)显示模糊(温和但明显).

几个问题:

感谢任何经验丰富的回答这个难题.谢谢.

1 - 当用户打开它时,如何在代码中指示故事板上的元素(例如UIView)忽略显示缩放设置?

2 - 当显示缩放开启时,有哪些技术可确保像素完美精确度?(例如,是否可以使用OpenGL渲染渲染图形,如果是这样,如何?)

3 - 当显示缩放开启时,是否可以用x4图像替换x2图像以减少模糊?(即iOS会在iPhone 6上将x4图像下采样到x2图像吗?)

4 - UIBezierPath()当显示缩放开启时,图形如何保持像素完美的精度?

optimization xcode ios uibezierpath swift

0
推荐指数
1
解决办法
937
查看次数

UIBezierPath填充vs CAShapeLayer

我试图绘制一个简单的形状作为游戏界面的一部分,大多数教程使用UIBezierPath来定义CAShapeLayer的路径.但是,我注意到UIBezierPath已经有了一个现有的填充功能.

这可能是一个愚蠢的问题,但使用它和使用单独的CAShapeLayer绘制路径有什么区别?还有哪一个更好?

cashapelayer ios uibezierpath swift

0
推荐指数
1
解决办法
531
查看次数

使用UIBezierPath在Swift中进行sunburst

我想用UIBezierPath制作这个UIView:

在此输入图像描述

有可选的旋转功能(虽然如果我知道如何绘制旭日(我称之为视图),我可以自己制作)

答案在目标C中给出:https://stackoverflow.com/a/14991292/7715250

我尝试使用此代码在Swift中转换它(Playground中的复制粘贴将起作用):

import UIKit

class SunBurst: UIView{
    override func draw(_ rect: CGRect) {
        let radius: CGFloat = rect.size.width / 2.0
        UIColor.red.setFill()
        UIColor.blue.setStroke()
        let bezierPath = UIBezierPath()
        let centerPoint = CGPoint(x: rect.origin.x + radius, y: rect.origin.y + radius)
        var thisPoint = CGPoint(x: centerPoint.x + radius, y: centerPoint.y)
        bezierPath.move(to: centerPoint)
        var thisAngle: CGFloat = 0.0
        let sliceDegrees: CGFloat = 360.0 / 20 / 2.0
        let half: CGFloat = 180
        let floatRadius = Float(radius)

        for _ in 0..<20 …
Run Code Online (Sandbox Code Playgroud)

objective-c uiview ios uibezierpath swift

0
推荐指数
1
解决办法
110
查看次数

UIBezierPath - 波形/噪声数据的平滑图表

我的目标是在用户在屏幕上滑动时实现类似Adobe Illustrator的行.目前它非常不稳定 - 这是当前情况的截图:

嘈杂的线条

我认为这显然是我想要的.我希望平滑这些直线.这叫做抗锯齿吗?

- (void)touchesBegan: (CGPoint)point
{
    currentStroke = [[Stroke alloc] initWithStartPoint:point];
    [strokes addObject:currentStroke];
}

- (void)touchesMoved: (CGPoint)point
{
    if (!currentStroke) {
        [self touchesBegan:point];
    }
    [currentStroke.points addObject:[NSValue valueWithCGPoint:point]]
    pathTwo = [self createPath];
    [self scaleToFit];
    [self setNeedsDisplay];
}

- (UIBezierPath *)createPath {
    UIBezierPath * bezierPath = [UIBezierPath bezierPath];
    for (Stroke * stroke in strokes) {
        [bezierPath moveToPoint:stroke.startPoint];
        for (NSValue * value in stroke.points) {
            [bezierPath addLineToPoint:[value CGPointValue]];
        }
    }
    return bezierPath;
}

- (void)touchesEnded: (CGPoint)point
{
    [points removeAllObjects];
    [self …
Run Code Online (Sandbox Code Playgroud)

objective-c ios uibezierpath

0
推荐指数
1
解决办法
393
查看次数