UI_设计模式、手势

Day 05 of UI
1. Target-Action设计模式的写法?
    1.1 创建MyButton类
    1.2 在MyButton.h文件中声明了添加事件的方法
    1.3 写延展,声明私有的实例变量(_target / _action / _controlEvents)
    1.4 实现addTaregt:action:forControlEvents:内部,将参数的值,赋给实例变量
    1.5 在touchesEnded:withEvent:方法内部,使用_target去执行_action消息

- (void)addTarget:(id)target
action:(SEL)action
forControlEvents:(UIControlEvents)controlEvents
{
_target = target;
_action = action;
_controlEvents = controlEvents;
}



- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
// 判断触发方式是否一致
if (_controlEvents == UIControlEventTouchUpInside) {

// 通过target执行action消息
[_target performSelector:_action withObject:self];
}
}


   
2. Delegate设计模式的写法?
    2.1 创建MyTextField
    2.2 在MyTextField.h 文件中声明了 MyTextFieldDelegate 协议(@class)
    2.3 声明 delegate 属性 (id<MyTextFieldDelegate>)

// 给MyTextField对象设置代理
_rootView.myTextField1.delegate = self;


    2.4 实现touches的三个方法

// 实现协议方法
- (void)textFieldBeganEdit:(MyTextField *)textField
{
NSLog(@"Begin edit!");
}


    2.4.1 判断_delegate对象是否存在,并且能够响应协议中的方法

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
if (_delegate != nil && [_delegate respondsToSelector:@selector(textFieldBeganEdit:)]) {
[_delegate textFieldBeganEdit:self];
}
}


    2.4.2 给 _delegate 对象发送代理方法
   
3. UIImageView播放动画?

UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 200, 375, 300)];
imageView.image = [UIImage imageNamed:@"img_01"];
[self addSubview:imageView];

NSMutableArray *imagesArray = [NSMutableArray array];
for (int i = 0; i <14; i++) {
NSString *imgName = [NSString stringWithFormat:@"img_%d.tiff", i];
UIImage *image = [UIImage imageNamed:imgName];
[imagesArray addObject:image];
}

// 将存放所有图片的数组放入animationImages属性中
imageView.animationImages = imagesArray;
imageView.animationDuration = 1;
// imageView.animationRepeatCount = 1000;

// 播放动画
[imageView startAnimating];


4. 手势的使用?

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.


// 1. 轻拍手势
UITapGestureRecognizer *tapGR = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGRAction:)] autorelease];
// tapGR.numberOfTapsRequired = 2; // 设置点击多少次的手势
tapGR.numberOfTouchesRequired = 2; // 设置多少根手指

[_rootView.imageView addGestureRecognizer:tapGR];

// 2. 捏合手势
UIPinchGestureRecognizer *pinchGR = [[[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinchGRAction:)] autorelease];
[_rootView.imageView addGestureRecognizer:pinchGR];

}

- (void)pinchGRAction:(UIPinchGestureRecognizer *)sender
{
NSLog(@"Shrink");
// transform 属性可以控制视图的缩放比例
// 在原始的基础上进行缩放
// _rootView.imageView.transform = CGAffineTransformMakeScale(sender.scale, sender.scale);

// 在给定的基础上进行缩放
_rootView.imageView.transform = CGAffineTransformScale(_rootView.imageView.transform, sender.scale, sender.scale);
// 保证每次缩放的比例都是相对于当前大小的比例
sender.scale = 1.0;

}

- (void)tapGRAction:(UITapGestureRecognizer *)sender
{
NSLog(@"Pain!");
}



5. 摇晃的方法?

    motion.....

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值