ios - iOS,如何为有趣的应用程序划粗线?

标签 ios objective-c cocoa-touch core-graphics

我试图画一条粗线,一条正常的直线在我的应用中看起来很奇怪。我正在使用有趣的字体等,但是直线不起作用。

当我说粗糙时,我的意思是我想给它添加一些噪音或纹理。

我尝试将图像添加为纹理,但是尝试使用的选项使用统一的平铺方法,听起来似乎在几何学上太合理了。

我需要添加散射效果以大致以直线形状绘制纹理图像,或者需要某种随机方法来添加噪点。

我知道我可以在成像应用程序中画出一条粗线,然后使用它,但是我不确定现阶段的颜色和尺寸,我宁愿使用动态的东西。

我在这个问题上花费了太长的时间,如果花费大量时间搜索并且找不到我可以使用的任何东西,则花费了很多,因此,如果您有解决方案,请提供或指出一些示例代码。

谢谢。

这是我找到的最好的解决方案,但是太统一了...

#import "DrawTexturedLine.h"
@implementation DrawTexturedLine

- (void)drawRect:(CGRect)rect
{    
    CGContextRef context = UIGraphicsGetCurrentContext();
    [self patternMake2:rect context:context];
}

void pattern2Callback (void *info, CGContextRef context) {
    UIImage *image = [UIImage imageNamed:@"particle.png"];
    CGImageRef imageRef = [image CGImage];
    CGContextDrawImage(context, CGRectMake(0, 0, 50, 25), imageRef);
}

- (void)patternMake2:(CGRect)rect context:(CGContextRef)context
{
    static const CGPatternCallbacks callbacks = { 0, &pattern2Callback, NULL };

    CGColorSpaceRef patternSpace = CGColorSpaceCreatePattern(NULL);
    CGContextSetFillColorSpace(context, patternSpace);
    CGColorSpaceRelease(patternSpace);
    CGSize patternSize = CGSizeMake(25/2.0, 25);
    CGPatternRef pattern = CGPatternCreate(NULL, self.bounds, 
        CGAffineTransformIdentity, patternSize.width, patternSize.height, 
        kCGPathFillStroke, true, &callbacks);
    CGFloat alpha = 1;
    CGContextSetFillPattern(context, pattern, &alpha);

    CGPatternRelease(pattern);
    CGContextFillRect(context, rect);
    //CGContextRestoreGState(context);
     }
@end

最佳答案

不能完全回答您的问题,但是您可以在绘画包中绘制线条并将其包含在您的应用程序中,然后使用类似这样的代码来设置线条的颜色。

https://coffeeshopped.com/2010/09/iphone-how-to-dynamically-color-a-uiimage

如果您要使用Sprite Kit,则更改图像颜色变得容易得多

[SKAction colorizeWithColor:[self randomColor]
                             colorBlendFactor:1.0
                                     duration:0]];

关于ios - iOS,如何为有趣的应用程序划粗线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22953475/

相关文章:

iphone - 找不到 -lxml2 的库 仅当在设备而非模拟器上运行时

iOS OpenGL ES 在 2d 世界中执行缩放

iphone - iPhone 的加速度计有多精确——是否可以绘制出相对准确的手机位置运动路径?

ios - NSString 和 NSData 是我可以插入到 KeyChain 中的唯一类型吗?

ios - 当半透明为 True 时,以编程方式将 ViewController subview 推到导航栏下方

iphone - 对 NSUserDefaults 进行数学运算并重新保存 - 不起作用

ios - swift : not exiting Firebase observe fuction block

ios - 从 NSJSONSerialization 返回的对象可以不同

iphone - 对具有未知延迟的后续事件进行分组

html - 将 XML 转换为 HTML