#import <UIKit/UIKit.h>
@interface BJViewController : UIViewController
@property (weak, nonatomic) IBOutlet UIButton *btn;
- (IBAction)rotato:(id)sender;
- (IBAction)change:(id)sender;
- (IBAction)move:(id)sender;
@end
</pre><pre name="code" class="objc">-------<pre name="code" class="objc">#import "BJViewController.h"
@interface BJViewController ()
@end
@implementation BJViewController
- (IBAction)rotato:(id)sender {
int tag = [sender tag];
if(tag == 5){
_btn.transform = CGAffineTransformRotate(_btn.transform, -M_PI_4);
}else if(tag == 6){
self->_btn.transform = CGAffineTransformRotate(_btn.transform, M_PI_4);
}
}
- (IBAction)change:(id)sender {
int tag = [sender tag];
if(tag == 7){
_btn.transform = CGAffineTransformScale(_btn.transform, 2, 2);
}else if(tag == 8){
_btn.transform = CGAffineTransformScale(_btn.transform, 0.5, 0.5);
}
}
- (IBAction)move:(id)sender {
//OC语法中规定,不允许直接修改 某个对象中的 结构体属性 的值:如果在一个对象中,而这个对象的一个属性成员是结构体,是不允许直接修改的
下面代码是错误的,OC语法规定:不允许直接修改对象的结构体属性的成员
self.headBtn.frame.origin.y -= 10;
//需要这样做:定义一个局部变量
CGRect tempFrame = _btn.frame;
int tag = [sender tag];
switch (tag) {
case 1:
tempFrame.origin.y -= 10;
break;
case 2:
tempFrame.origin.x += 10;
break;
case 3:
tempFrame.origin.y += 10;
break;
case 4:
tempFrame.origin.x -= 10;
break;
default:
break;
}
_btn.frame = tempFrame ;
}
@end