【发布时间】:2014-03-27 12:32:34
【问题描述】:
是否可以在ios中重复一张类似CSS功能的图片
background-image:imageurl;
background-repeat :repeat-x;
这样图像就可以完美地适应 iPhone 和 iPad 的屏幕尺寸
【问题讨论】:
标签: ios objective-c uiimage quartz-core
是否可以在ios中重复一张类似CSS功能的图片
background-image:imageurl;
background-repeat :repeat-x;
这样图像就可以完美地适应 iPhone 和 iPad 的屏幕尺寸
【问题讨论】:
标签: ios objective-c uiimage quartz-core
你可以试试这个:
- (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"] ;
您仍需要调整框架以控制覆盖的宽度/高度。
【讨论】:
您有很多选择。 核心图形为您提供 CGContextDrawTiledImage()
UIImage 给你 drawPatternInRect: (可能是上述的包装)
但最有用的是查看转换。 Quartz 2D 绘图指南中的 CGAffineTransform 是您想要阅读的内容。
绘制 rect 非常便宜且容易,只需进行一些迭代,在图像的 CG 术语翻译中的一堆位置绘制相同的图像,这意味着它是在另一个位置绘制的。
您甚至可以在绘制到视图之前绘制到图像上下文并获取缓存的表示,这样您就不需要总是重绘所有内容。
核心动画也有变换。
【讨论】: