【发布时间】:2012-05-05 21:10:50
【问题描述】:
我想创建我自己的 UIImage 子类,这将允许我创建一个可实现/可拉伸的图像,并且在四个边的每一边都有帽。
iOS 5 的 resizableImage 不适合我的需要,因为它不允许我拉伸中间部分,现在已弃用的 stretchableImage 也不适合,因为它只允许我重复一个像素,而我可能想要重复某种渐变。
到目前为止一切正常,我在-drawInRect: 中实现了自己的绘图代码,它的行为符合预期。
但是,当将我的自定义子类实例分配为UIImageView 的图像时,我的代码会中断。图像被渲染为正常的 UIImage 会。 (在所有方向上缩放,没有任何大写)
我尝试在所有四种绘图方法中设置断点(drawInRect、drawAtPoint,无论是独立的还是带有 blendMode: 的,但它们似乎没有被调用。
在UIImageView 中使用UIImage 时,有没有办法为UIImage 提供自定义绘图代码,而无需子类化UIImageView?
另外,我担心性能。默认的可拉伸图像在动画期间效果很好,但我想知道在为我的UIImageView 的大小属性(宽度和高度)设置动画时效果如何。我的渲染代码会在每一帧都被调用吗?
【问题讨论】:
-
为什么不直接编写自己的 UIView 子类而不是使用 UIImageView?你可以使用你的 UIImage 子类甚至 CGImageRef 来代替。
-
我知道我可以做到这一点,但我说我有一个大型项目,其中包含许多可拉伸图像,当不再受支持时会中断。我只是想更改调用以使其可扩展,同时保留其余代码。我不想用我自己的 UIView 替换每一个 UIImageView。
标签: ios uiimageview uiimage