[英]Manipulating UIImage with GestureRecognizers - NOT UIImageView
使用“平移”,“捏”和“旋轉”等手勢識別器,是否有可能在UIImageView中操縱UIImage?
每當我嘗試為UIImage定義手勢識別器時,都會收到一條錯誤消息,指出
沒有可見的UIImage支持“ addGestureRecognizer:”
使用此代碼:
UIRotationGestureRecognizer *rotateGesture = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotateImage:)];
[imageStrip addGestureRecognizer:rotateGesture];
反正有沒有轉換UIImageView而不轉換UIImageView內部的UIImage?
您可以將手勢識別器添加到任何類型的UIView
並且在事件處理方法中,可以將UIImage
重繪到新創建的CGContextRef
。 必須使用CGContextRotateCTM
, CGContextScaleCTM
, CGContextTranslateCTM
轉換此上下文,並使用與您從手勢識別器接收到的參數匹配的參數進行調用。 那是很難的方法。
或者,您可以使用圖像創建一個草稿UIImageView
,使用手勢識別器對其進行轉換,然后將其呈現為CGContextRef
並從該上下文中獲取轉換后的圖像。
當然可行,但並非無關緊要。
UIGestureRecognizer
只能附加到UIView
- UIImage
不是UIView
的后代。
這是因為UIView
(或其后代)可以接收觸摸UIImage
無法接收觸摸。
請參閱將手勢識別器附加到視圖 。
用戶完成操作后,可以根據參數重新計算/渲染UIImage
。 關於如何執行此操作:這實際上取決於您要實現的目標。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.