我想使用UIImageView
在iPhone视图的长度范围内将imageView.transform = CGAffineTransformMakeRotation(degrees * M_PI/180);
旋转90度,并且想知道如何在视图被拖动时实现此功能用户(因此,如果向右拖动视图,也可以“向后”旋转)。谢谢!
答案 0 :(得分: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
问题是,你不必担心无论你在哪里平移,因为视图轮换只会在每次更改时根据其位置进行更新。
希望有所帮助:)