0

我想UIImageView在 iPhone 视图的长度范围内使用 旋转 90 度imageView.transform = CGAffineTransformMakeRotation(degrees * M_PI/180);,并且想知道如何在视图被用户向左拖动时实现这一点(因此也能够“向后”旋转)如果视图被向右拖动)。谢谢!

在此处输入图像描述

4

1 回答 1

1

关于移动视图,您可以通过frame像这样更新其属性来做到这一点。-

view.frame = CGRectMake(view.frame.origin.x + xOffset, view.frame.origin.y, view.frame.size.width, view.frame.size.height);

您也可以添加并observer听取您的更改view frame。-

[view addObserver:self forKeyPath:@"frame" options:NSKeyValueObservingOptionOld context:NULL];

frame在这里,您基本上要求在对象的属性view更改时接收通知。您可以处理实现以下方法的通知。-

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
    if([keyPath isEqualToString:@"frame"]) {
        // Change object rotation depending on frame.origin.x
    }
}

您必须做一些数学运算才能根据x位置计算旋转。另外,我想沿其中心旋转视图有点棘手,也许您会发现下面的帖子很有用。-

http://www.informit.com/blogs/blog.aspx?uk=Ask-Big-Nerd-Ranch-Rotating-an-iPhone-View-Around-a-Point

问题是,您不必担心平移到哪里,因为每次视图旋转都会根据其位置进行更新。

希望能帮助到你 :)

于 2013-09-12T23:19:19.703 回答