objective-c - 需要有关在 quartz-2d 中从中心增大和缩小圆的帮助

标签 objective-c ios quartz-2d

我目前正在开发绘图应用程序,其中有一个 slider 可以增加和减少线宽。我只想做一件简单的事情,就是在 slider 前面画一个圆圈来表示宽度。我很容易做到,但它不是从中心增长和收缩,而是从顶部 x、y 增长和收缩,这是代码

- (UIImage *)circleOnImage:(int)size
{
    UIGraphicsBeginImageContext(CGSizeMake(25, 25));

    CGContextRef ctx = UIGraphicsGetCurrentContext();

    [[UIColor blackColor] setFill];

        CGContextTranslateCTM(ctx, 12, 12);//also try to change the coordinate but didn't work

    CGRect circleRect = CGRectMake(0, 0, size, size);

    CGContextFillEllipseInRect(ctx, circleRect);

    UIImage *retImage = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    return retImage;
}

enter image description here

enter image description here

最佳答案

尝试

CGContextTranslateCTM(ctx, 12.5, 12.5);
CGRect circleRect = CGRectMake(-size/2., -size/2., size, size);

关于objective-c - 需要有关在 quartz-2d 中从中心增大和缩小圆的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12350855/

相关文章:

objective-c - CGPDFScannerScan 不触发回调函数

ios - 在 ios 应用程序退出时执行操作

objective-c - 制作一个复选框来打开和关闭 Dock 图标

ios - 将数据传递给 ViewController 问题

ios - 动态添加 UILabels 到 UIView

ios - 解析 Messenger 聊天 Swift : Messages are out of order

iphone - 如何以编程方式为 UIButton 提供光泽外观?

c# - 有没有一种简单的方法可以在C#中模拟Objective-C类别?

ios - 重用 UITableViewCell 与不同的数据

ios - 我可以通过编程方式向 PDF 添加链接注释吗?