ios学习之个人笔记(按钮操作)
2015-11-28 18:12
399 查看
此小程序主要实现下面按钮对“图片按钮”的操作,移动、放大、缩小和旋转的功能。
最终效果图:
移动方法主要是通过图片按钮的frame.origin来改变其X和Y轴的坐标实现
frame.origin是CGPoint结构体如下
struct CGPoint {
CGFloat x;
CGFloat y;
};
放大、缩小通过图片按钮的frame.size改变其width和height大小实现。
frame.size也是个结构体如下
struct CGSize {
CGFloat width;
CGFloat height;
};
旋转是改变其角度,设置旋转按钮的tag分别为1和0,通过耳目运算符获得改变的角度大小,然后通过CGAffineTransformRotate(self.btnImg.transform, angle)进行改变。
此方法第一个参数为基于什么位置进行改变,第二个参数是旋转的角度大小。
按钮操作素材
最终效果图:
//这里是用到的属性和方法声明 @interface ViewController () @property (weak, nonatomic) IBOutlet UIButton *btnImg; - (IBAction)move:(UIButton *)sender; - (IBAction)rotate:(UIButton *)sender; - (IBAction)scale:(UIButton *)sender; @end
//移动方法 - (IBAction)move:(UIButton *)sender { //设置动画 [UIView animateWithDuration:0.7 animations:^{ //1)获取图片原始frame CGRect orginFrame = self.btnImg.frame; //根据tag判断当前是那个按钮 switch (sender.tag) { case 10: orginFrame.origin.y-=10; break; case 20: orginFrame.origin.x-=10; break; case 30: orginFrame.origin.y+=10; break; case 40: orginFrame.origin.x+=10; break; } self.btnImg.frame = orginFrame; }]; }
移动方法主要是通过图片按钮的frame.origin来改变其X和Y轴的坐标实现
frame.origin是CGPoint结构体如下
struct CGPoint {
CGFloat x;
CGFloat y;
};
//放大、缩小方法 - (IBAction)scale:(UIButton *)sender { //设置动画 [UIView animateWithDuration:0.7 animations:^{ //1)获取原始图片大小 CGRect originFrame = self.btnImg.frame; switch (sender.tag) { case 100: originFrame.size.width+=10; originFrame.size.height+=10; break; case 200: originFrame.size.width-=10; originFrame.size.height-=10; break; } self.btnImg.frame = originFrame; }]; }
放大、缩小通过图片按钮的frame.size改变其width和height大小实现。
frame.size也是个结构体如下
struct CGSize {
CGFloat width;
CGFloat height;
};
//旋转 - (IBAction)rotate:(UIButton *)sender { CGFloat angle = (sender.tag) ? M_2_PI : -M_2_PI; self.btnImg.transform = CGAffineTransformRotate(self.btnImg.transform, angle); }
旋转是改变其角度,设置旋转按钮的tag分别为1和0,通过耳目运算符获得改变的角度大小,然后通过CGAffineTransformRotate(self.btnImg.transform, angle)进行改变。
此方法第一个参数为基于什么位置进行改变,第二个参数是旋转的角度大小。
按钮操作素材
相关文章推荐
- <iOS> 谈谈iOS Animation -- calculationMode属性
- A Mathematical Curiosity
- 更新iOS 9之后,你需要留意的两个游戏新特性
- iOS开发问题汇总
- iOS8中添加的extensions总结(一)——今日扩展
- iOS8系统H264视频硬件解码Demo
- iOS 数组去重
- iOS开发:在Xcode中用Pods管理第三方库
- iOS开发中那些高效常用的宏
- iOS开发 多视角抛析匿名函数—— Block
- 在OC中怎样去查找一个字符串中有没有另外一个字符串
- [ios基础] KVO观察者模式,实用分析
- iOS中常用的正则表达式
- 【ios基础】KVC大白话介绍篇
- 华硕开机自动进入bios(最终解决方案)
- [ios基础]大白话解释分类和扩展
- (NO.00004)iOS实现打砖块游戏(三):游戏主场景和砖块
- (NO.00004)iOS实现打砖块游戏(三):游戏主场景和砖块
- (NO.00004)iOS实现打砖块游戏(三):游戏主场景和砖块
- iOS MRC手动内存管理 心得体会