我有一个UIView,我在方向改变时手动旋转,这个UIView托管了许多按钮,我想根据方向的变化旋转它们。
我这样做:
CGAffineTransform rotation = CGAffineTransformMakeRotation(M_PI / -4);
[UIView animateWithDuration:0.25 animations:^
{
self.parentView.firstButton.transform = CGAffineTransformConcat(self.parentView.firstButton.transform, rotation);
self.parentView.secondButton.transform = CGAffineTransformConcat(self.parentView.secondButton.transform, rotation);
self.parentView.thirdButton.transform = CGAffineTransformConcat(self.parentView.thirdButton.transform, rotation);
self.parentView.transform = CGAffineTransformConcat(self.parentView.transform, rotation);
}
completion:^(BOOL finished)
{
}];
parentView正确旋转,但其他按钮没有! 我是否需要在另一个电话中执行轮换?因为我不能在同一个区块中旋转按钮及其父视图?
由于
答案 0 :(得分:0)
旋转parentView应该足够了。确保先指定self.parentView.transform
。尝试使用CGAffineTransformMakeRotation()
直接分配正确的变换,并且不要依赖transform属性的当前状态(例如使用CGAffineTransformConcat()
)。不要忘记确保子视图确实是parentView的子视图 - [self.parentView addSubview:...]
应该出现在某个地方。如果您使用IB来设置子视图,这可能会很棘手;检查IB的视图层次结构树!