我是iOS新手,需要具備以下需求。請告訴我如何做到這一點。謝謝!ios-縮放和旋轉蒙面UIImageView
- 具有由另一圖像(幀)掩蔽的圖像(源極)
- 用戶可以拖動,縮放,旋轉源圖像。幀圖像保持不變。
我知道如何使用CGImageCreateWithMask以及如何將uiimageview放置在滾動視圖中用於捏縮放。但我不知道如何將這些結合在一起並進行自定義控制。
我是iOS新手,需要具備以下需求。請告訴我如何做到這一點。謝謝!ios-縮放和旋轉蒙面UIImageView
我知道如何使用CGImageCreateWithMask以及如何將uiimageview放置在滾動視圖中用於捏縮放。但我不知道如何將這些結合在一起並進行自定義控制。
要旋轉,您可以使用UIPanGestureRecognizer和放大/縮小您可以用UIPinchGestureRecognizer的圖像。可能是下面的代碼可以幫助你。
// In your vieDidLoad use:
UIPanGestureRecognizer *pan=[[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(panned:)];
UIPinchGestureRecognizer *pinch=[[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(pinched:)];
[self.imageview addGestureRecognizer:pinch];
[self.imageview addGestureRecognizer:pan];
and add the selector methods:
// To zoom in/out
- (void)pinched:(UIPinchGestureRecognizer *)sender {
if (sender.scale >1.0f && sender.scale < 2.5f) {
CGAffineTransform transform = CGAffineTransformMakeScale(sender.scale, sender.scale);
imageview.transform = transform;
}
}
//To rotate
-(void) panned:(UIGestureRecognizer *)gesture
{
CGPoint translatedPoint = [(UIPanGestureRecognizer*)gesture translationInView:imageview];
if([(UIPanGestureRecognizer*)gesture state] == UIGestureRecognizerStateBegan) {
_firstX = [imageview center].x;
_firstY = [imageview center].y;
}
translatedPoint = CGPointMake(_firstX+translatedPoint.x, _firstY+translatedPoint.y);
[imageview setCenter:translatedPoint];
}
在你的viewDidLoad你也應該添加你的框架作爲子視圖到imageview。
我最終做的是將imageview作爲子視圖添加到frameviewview並將其裁剪到邊界。 – tjlian616
在哪裏定義_firstX和_firstY –
你能分享一些代碼試圖解決這個問題的最後2天,但沒有找到任何解決方案,請幫助我 –