如何在Xcode + IB中旋转UI按钮?

Tat*_*tat 2 iphone xcode interface interface-builder

我正在写一个iPhone程序员,我想制作一个旋转180度的按钮,我尝试使用多点触控的触控板来旋转UI按钮,但它没有成功,我该怎么办呢?或者我需要通过代码来完成它?

Mac*_*ade 22

您无法从Interface Builder中执行此操作.您必须使用UIButton的transform属性从代码中旋转它,这是一个CGAffineTransform结构.您可以使用CGAffineTransformMakeRotation()来设置它.

myButton.transform = CGAffineTransformMakeRotation( ( 180 * M_PI ) / 180 );
Run Code Online (Sandbox Code Playgroud)

代码中的前180是以度为单位的角度.该操作将其转换为弧度.


Gav*_*ler 5

我想做同样的事情 - 点击时旋转180度按钮 - 但是使用动画做.Neurofluxation的答案通过动画进行180度旋转,但它不是永久性的.Macmade的答案是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];
Run Code Online (Sandbox Code Playgroud)

同样,如果要旋转回起始位置(即0度旋转),则将以下内容置于上述动画代码之间:

myButton.transform = CGAffineTransformMakeRotation(0);
Run Code Online (Sandbox Code Playgroud)

至于这种按钮的使用案例,Evernote的显示/隐藏键盘按钮可以进行非常光滑的180度旋转,可以使用上面的代码重新创建.