有一种简单的方法可以将旋转的平铺图像渲染为视图背景吗?有什么效果UIColor(patternImage:)
,但图像以某个角度旋转?
答案 0 :(得分:1)
没有简单的方法可以实现这一点,至少在香草Swift中没有。我会使用另一个displayMetricTables('Oracle_BI*','dms_cProcessInfo')
作为原始视图的子视图,将其背景设置为平铺图像并向该特定视图添加UIView
。
答案 1 :(得分:1)
结果核心图像过滤器CIAffineTile
完全符合我的要求。
extension UIImage {
func tile(angle: CGFloat) -> CIImage? {
return CIImage(image: self)?.applyingFilter(
"CIAffineTile",
withInputParameters: [
kCIInputTransformKey: NSValue(
cgAffineTransform: CGAffineTransform(rotationAngle: angle)
)
]
)
}
}
此函数创建一个具有无限范围的CIImage
,可以裁剪并转换为真实图像。
let v = UIImageView()
// ...
let source = UIImage(named: "sample")!
let tiled = source.tile(angle: CGFloat.pi / 6)!
let result = UIImage(ciImage: tiled.cropping(to: v.bounds))
v.image = result