【问题标题】:Image Repetition in ios siimilar to CSS background-repeat functionios中的图像重复类似于CSS background-repeat 功能
【发布时间】:2014-03-27 12:32:34
【问题描述】:

是否可以在ios中重复一张类似CSS功能的图片

background-image:imageurl;
background-repeat :repeat-x;

这样图像就可以完美地适应 iPhone 和 iPad 的屏幕尺寸

【问题讨论】:

    标签: ios objective-c uiimage quartz-core


    【解决方案1】:

    你可以试试这个:

    - (UIImage *) imageFromAssetImageNamed: (NSString *) name {
        NSString * fullKeyPath = [[NSBundle mainBundle] pathForResource:name
                                                                 ofType:@"png"
                                                            inDirectory:@"assets"] ;
    
        return [UIImage imageWithContentsOfFile:fullKeyPath] ;
    }
    
    - (UIColor *) colorPatternFromAssetImageNamed: (NSString *) name {
    
        return [UIColor colorWithPatternImage:[self imageFromAssetImageNamed:name]] ;
    }
    

    然后您可以设置背景颜色,例如,使用:

    self.window.backgroundColor = [self colorPatternFromAssetImageNamed:@"my-bg-color"] ;
    

    您仍需要调整框架以控制覆盖的宽度/高度。

    【讨论】:

      【解决方案2】:

      您有很多选择。 核心图形为您提供 CGContextDrawTiledImage()

      UIImage 给你 drawPatternInRect: (可能是上述的包装)

      但最有用的是查看转换。 Quartz 2D 绘图指南中的 CGAffineTransform 是您想要阅读的内容。

      绘制 rect 非常便宜且容易,只需进行一些迭代,在图像的 CG 术语翻译中的一堆位置绘制相同的图像,这意味着它是在另一个位置绘制的。

      您甚至可以在绘制到视图之前绘制到图像上下文并获取缓存的表示,这样您就不需要总是重绘所有内容。

      核心动画也有变换。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-01-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-29
        • 1970-01-01
        • 2016-11-20
        • 2018-01-12
        相关资源
        最近更新 更多