我正在写一个iPhone程序员,而且 我想制作一个旋转180度的按钮,我尝试使用多点触控滚轮来旋转UI按钮,但它没有成功,我该怎么办呢?或者我需要通过代码来完成它?
答案 0 :(得分:22)
您无法从Interface Builder执行此操作。您必须使用UIButton的transform属性从代码中旋转它,这是一个CGAffineTransform结构。 您可以使用CGAffineTransformMakeRotation()来设置它。
myButton.transform = CGAffineTransformMakeRotation( ( 180 * M_PI ) / 180 );
代码中的前180是以度为单位的角度。该操作将其转换为弧度。
答案 1 :(得分:5)
我想做同样的事情 - 点击时旋转180度按钮 - 但是使用动画做。 Neurofluxation's answer使用动画进行180度旋转,但它不是永久性的。 Macmade's answer执行180度旋转,但不会使用动画。所以,如果你像我一样,并希望用动画进行180度旋转,请使用以下代码:
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.35];
// (180 * M_PI) / 180 == M_PI, so just use M_PI
myButton.transform = CGAffineTransformMakeRotation(M_PI);
[UIView commitAnimations];
同样,如果你想旋转回起始位置(即0度旋转),那么将以下内容放在上面的动画代码之间:
myButton.transform = CGAffineTransformMakeRotation(0);
对于这样一个按钮的使用案例,Evernote的显示/隐藏键盘按钮可以使用上面的代码进行非常光滑的180度旋转,可以是recreated。
答案 2 :(得分:1)
嗯,我们走了:
CABasicAnimation *halfTurn;
halfTurn = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
halfTurn.fromValue = [NSNumber numberWithFloat:0];
halfTurn.toValue = [NSNumber numberWithFloat:((360*M_PI)/180)];
halfTurn.duration = 0.5;
halfTurn.repeatCount = 1;
[myButton addAnimation:halfTurn forKey:@"180"];
希望有所帮助......我虽然在我的电脑上打字,但不是我的Mac - 所以我希望这是对的!