【问题标题】:Stretchable UIImage and CGAffineTransform可拉伸的 UIImage 和 CGAffineTransform
【发布时间】:2010-12-22 02:09:08
【问题描述】:

我有一个UIScrollView,我想将其缩放行为限制在水平轴上。我通过使用自定义UIView 作为viewForZoomingInScrollView: 并覆盖setTransform: 实现了这一点。到目前为止一切顺利 - 视图仅水平缩放。

一个问题:容器视图在UIImageViews 中包含一些可伸缩的UIImage 实例。显然,随着变换的生效,图像会失真。

对于重绘视图以使图像不失真,或者以不需要变换的方式缩放视图的最佳选择是什么?

感谢您提供的任何帮助。

【问题讨论】:

  • 我认为失真取决于应用拉伸和仿射变换的顺序。我不熟悉 iphone API。是否可以颠倒转换的顺序?
  • 我不这么认为。 UIImage 实例的可拉伸性是在初始化时设置的,然后当您调整显示它的 UIImageView 的框架大小时,图像会根据您最初指定的左边距和上边距呈现。由于就 UIImageView 而言,在应用其父视图的变换时,它的框架没有改变,因此不会重绘图像。

标签: iphone cocoa-touch ios uiscrollview uiimage


【解决方案1】:

您确定实现此目的的方法是将您的 UIImageView 变成自定义 UIView,并让其 drawRect: 代码做正确的事情:绘制拉伸和未拉伸的元素。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-11
    • 2010-11-24
    • 1970-01-01
    • 2011-09-19
    • 2014-09-10
    • 1970-01-01
    相关资源
    最近更新 更多