【问题标题】:Rotate uiimage instead of uiimageview. Showing borders of uiimageview same as before only changing image旋转 uiimage 而不是 uiimageview。显示 uiimageview 的边框与以前相同,仅更改图像
【发布时间】:2012-01-02 06:17:21
【问题描述】:

我想使用触摸来旋转 uiimageview 中的 uiimage。但是,在旋转图像时,不应干扰图像视图边界,仅应旋转图像。任何人都知道我该怎么做。我见过很多使用手势的例子,但我不能使用手势识别器,因为我已经编写了使用触摸从角落调整 uiimageview 大小的代码。任何帮助表示赞赏。

【问题讨论】:

    标签: objective-c ios ipad uiimageview touches


    【解决方案1】:

    我会将 UIImageView 放入您处理触摸的 UIView 中,然后将转换应用于 UIImageView。只要 UIView 不裁剪边界,它就会显示整个 UIImageView,并且您可以让交互发生在 UIView 上。边框也会在 UIView 上设置。

    然后旋转 UIImageView 将非常简单:

    imageView.transform = CGAffineTransformMakeRotation(ANGLE_IN_RADIANS);
    

    【讨论】:

      【解决方案2】:

      可以通过设置属性单独旋转UIImage对象

      @property(nonatomic, readonly) UIImageOrientation imageOrientation
      

      你可以在这里找到方向 http://developer.apple.com/library/ios/#documentation/uikit/reference/UIImage_Class/Reference/Reference.html.

      至于在不使用手势识别器的情况下使图像在触摸时发生变化,我认为这是不可能的。但是,您可以使用诸如

      之类的方法来解决同一视图上的多个手势识别器问题
      - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
      

      在 UIGestureRecognizerDelegate 协议中可用。我很确定,您可以指定哪些手势在您的情况下应该做什么,而无需更改视图及其层次结构。

      【讨论】:

      • 我以为他想要完全控制旋转角度,但如果他只需要 4 就可以了。
      • @PhilippeSabourin 感谢您指出这一点。如果图像需要以任何角度旋转,则应将其放在视图中并按照您的答案完成。+1
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多