【问题标题】:Custom "resizable image" drawing in iOSiOS中的自定义“可调整大小的图像”绘图
【发布时间】:2013-11-21 10:03:49
【问题描述】:

UIImage API 提供了调整图像大小的方法,以使某些区域被拉伸,而其他区域保持不变 - 非常适合用于可调整大小的 UI 元素的背景图像。

现在我正在寻找一种方法来为更复杂的背景图像自定义此行为。

这就是- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets; 所做的。透明区域保持不变,当视图大小改变时,红色区域被拉伸。

这就是我想要的 - 对拉伸区域进行更精细的控制:

我想我必须通过覆盖我的 UIView 子类的 -(void)drawRect: 方法来做到这一点,然后使用 Quartz 来绘制图像。

我只是不知道我必须使用哪些系统 API。

谁能给我一个提示如何做到这一点?

【问题讨论】:

  • 你找到答案了吗?我现在面临同样的问题...
  • 不幸的是,我现在一直在使用多个 UIImageView。它并不优雅,但它正在工作。如果您发现更好的东西,请随时通知我!

标签: ios objective-c uiimage quartz-2d


【解决方案1】:

我将只使用三个单独的 UIImageViews,其中包含 resizableImageWithCapInsets。您也可以在 drawRect 中使用,例如 CGPattern,但是在缩放视图时会遇到性能问题。

【讨论】:

  • 我不想使用多个 UIImageViews,抱歉我应该提到这一点。我已经尝试过这种方法,它有效,但由于与此上下文无关的原因,它不适合我的情况。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
  • 2011-10-24
相关资源
最近更新 更多