(纯代码)图片移动放大缩小:
#import "YYViewController.h"10 11 //私有扩展12 @interface YYViewController ()13 14 @property(nonatomic,weak)IBOutlet UIButton *headImageView;15 @end16 17 @implementation YYViewController18 19 //枚举类型,从1开始20 typedef enum21 {22 ktopbtntag=1,23 kdownbtntag,24 krightbtntag,25 kleftbtntag26 }btntag;27 28 //viewDidLoad是视图加载完成后调用的方法,通常在此方法中执行视图控制器的初始化工作29 - (void)viewDidLoad30 {31 32 //在viewDidLoad方法中,不要忘记调用父类的方法实现33 [super viewDidLoad];34 35 36 //手写控件代码37 //一、写一个按钮控件,上面有一张图片38 39 //1.使用类创建一个按钮对象40 // UIButton *headbtn=[[UIButton alloc] initWithFrame:CGRectMake(100 ,100, 100, 100)];41 //设置按钮对象为自定义型42 UIButton *headbtn=[UIButton buttonWithType:UIButtonTypeCustom];43 44 //2.设置对象的各项属性45 //(1)位置等通用属性设置46 headbtn.frame=CGRectMake(100, 100, 100, 100);47 48 //(2)设置普通状态下按钮的属性49 [headbtn setBackgroundImage:[UIImage imageNamed:@"i"] forState:UIControlStateNormal];50 [headbtn setTitle:@"点我!" forState:UIControlStateNormal];51 [headbtn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];52 53 //(3)设置高亮状态下按钮的属性54 [headbtn setBackgroundImage:[UIImage imageNamed:@"a"] forState:UIControlStateHighlighted];55 [headbtn setTitle:@"还行吧~" forState:UIControlStateHighlighted];56 [headbtn setTitleColor:[UIColor blueColor] forState:UIControlStateHighlighted];57 58 //3.把对象添加到视图中展现出来59 [self.view addSubview:headbtn];60 //注意点!61 self.headImageView=headbtn;62 63 64 //二、写四个控制图片左右上下移动方向的按钮控件65 66 /**================向上的按钮=====================*/67 //1.创建按钮对象68 UIButton *topbtn=[UIButton buttonWithType:UIButtonTypeCustom];69 70 //2.设置对象的属性71 topbtn.frame=CGRectMake(100, 250, 40, 40);72 [topbtn setBackgroundImage:[UIImage imageNamed:@"top_normal"] forState:UIControlStateNormal];73 [topbtn setBackgroundImage:[UIImage imageNamed:@"top_highlighted"] forState:UIControlStateHighlighted];74 [topbtn setTag:1];75 //3.把控件添加到视图中76 [self.view addSubview:topbtn];77 78 //4.按钮的单击控制事件79 [topbtn addTarget:self action:@selector(Click:) forControlEvents:UIControlEventTouchUpInside];80 81 82 /**================向下的按钮=====================*/83 //1.创建按钮对象84 UIButton *downbtn=[UIButton buttonWithType:UIButtonTypeCustom];85 //2.设置对象的属性86 downbtn.frame=CGRectMake(100, 350, 40, 40);87 [downbtn setBackgroundImage:[UIImage imageNamed:@"bottom_normal"] forState:UIControlStateNormal];88 [downbtn setBackgroundImage:[UIImage imageNamed:@"bottom_highlighted"] forState:UIControlStateHighlighted];89 [downbtn setTag:2];90 //3.把控件添加到视图中91 [self.view addSubview:downbtn];92 93 //4.按钮的单击控制事件94 [downbtn addTarget:self action:@selector(Click:) forControlEvents:UIControlEventTouchUpInside];95 96 97 /**================向左的按钮=====================*/98 //1.创建按钮对象99 UIButton *leftbtn=[UIButton buttonWithType:UIButtonTypeCustom]; 100 //2.设置对象的属性 101 leftbtn.frame=CGRectMake(50, 300, 40, 40); 102 [leftbtn setBackgroundImage:[UIImage imageNamed:@"left_normal"] forState:UIControlStateNormal]; 103 [leftbtn setBackgroundImage:[UIImage imageNamed:@"left_highlighted"] forState:UIControlStateHighlighted]; 104 [leftbtn setTag:4]; 105 //3.把控件添加到视图中 106 [self.view addSubview:leftbtn]; 107 108 //4.按钮的单击控制事件 109 [leftbtn addTarget:self action:@selector(Click:) forControlEvents:UIControlEventTouchUpInside]; 110 111 112 113 /**================向右的按钮=====================*/ 114 //1.创建按钮对象 115 UIButton *rightbtn=[UIButton buttonWithType:UIButtonTypeCustom]; 116 //2.设置对象的属性 117 rightbtn.frame=CGRectMake(150, 300, 40, 40); 118 [rightbtn setBackgroundImage:[UIImage imageNamed:@"right_normal"] forState:UIControlStateNormal]; 119 [rightbtn setBackgroundImage:[UIImage imageNamed:@"right_highlighted"] forState:UIControlStateHighlighted]; 120 [rightbtn setTag:3]; 121 //3.把控件添加到视图中 122 [self.view addSubview:rightbtn]; 123 124 //4.按钮的单击控制事件 125 [rightbtn addTarget:self action:@selector(Click:) forControlEvents:UIControlEventTouchUpInside]; 126 127 //三、写两个缩放按钮 128 /**================放大的按钮=====================*/ 129 //1.创建对象 130 UIButton *plusbtn=[UIButton buttonWithType:UIButtonTypeCustom]; 131 //2.设置属性 132 plusbtn.frame=CGRectMake(75, 400, 40, 40); 133 [plusbtn setBackgroundImage:[UIImage imageNamed:@"plus_normal"] forState:UIControlStateNormal]; 134 [plusbtn setBackgroundImage:[UIImage imageNamed:@"plus_highlighted"] forState:UIControlStateHighlighted]; 135 [plusbtn setTag:1]; 136 //3.添加到视图 137 [self.view addSubview:plusbtn]; 138 //4.单击事件 139 [plusbtn addTarget:self action:@selector(Zoom:) forControlEvents:UIControlEventTouchUpInside]; 140 141 142 /**================缩小的按钮=====================*/ 143 UIButton *minusbtn=[UIButton buttonWithType:UIButtonTypeCustom]; 144 minusbtn.frame=CGRectMake(125, 400, 40, 40); 145 [minusbtn setBackgroundImage:[UIImage imageNamed:@"minus_normal"] forState:UIControlStateNormal]; 146 [minusbtn setBackgroundImage:[UIImage imageNamed:@"minus_highlighted"] forState:UIControlStateHighlighted]; 147 [minusbtn setTag:0]; 148 [self.view addSubview:minusbtn]; 149 [minusbtn addTarget:self action:@selector(Zoom:) forControlEvents:UIControlEventTouchUpInside]; 150 } 151 152 //控制方向的多个按钮调用同一个方法 153 -(void)Click:(UIButton *)button 154 { 155 156 //练习使用frame属性 157 //CGRect frame=self.headImageView.frame; 158 159 /**注意,这里如果控制位置的两个属性frame和center同时使用的话,会出现很好玩的效果,注意分析*/ 160 //练习使用center属性 161 CGPoint center=self.headImageView.center; 162 switch (button.tag) { 163 case ktopbtntag: 164 center.y-=30; 165 break; 166 case kdownbtntag: 167 center.y+=30; 168 break; 169 case kleftbtntag: 170 //发现一个bug,之前的问题是因为少写了break,造成了它们的顺序执行,sorry 171 //center.x=center.x-30; 172 center.x-=50; 173 break; 174 case krightbtntag: 175 center.x+=50; 176 break; 177 } 178 179 // self.headImageView.frame=frame; 180 181 //首尾式设置动画效果 182 [UIView beginAnimations:nil context:nil]; 183 self.headImageView.center=center; 184 //设置时间 185 [UIView setAnimationDuration:2.0]; 186 [UIView commitAnimations]; 187 NSLog(@"移动!"); 188 189 } 190 -(void)Zoom:(UIButton *)btn 191 { 192 //使用frame,以自己的左上角(自己的原点)为原点 193 // CGRect frame=self.headImageView.frame; 194 // if (btn.tag) {195 // frame.size.height+=30; 196 // frame.size.width+=30; 197 // } 198 // else 199 // {200 // frame.size.width-=50; 201 // frame.size.height-=50; 202 // } 203 // self.headImageView.frame=frame; 204 205 206 //使用bounds,以中心点位原点进行缩放 207 CGRect bounds = self.headImageView.bounds; 208 if (btn.tag) { 209 bounds.size.height+=30; 210 bounds.size.width+=30; 211 } 212 else 213 { 214 bounds.size.height-=50; 215 bounds.size.width-=50; 216 } 217 218 //设置首尾动画 219 [UIView beginAnimations:nil context:nil]; 220 self.headImageView.bounds=bounds; 221 [UIView setAnimationDuration:2.0]; 222 [UIView commitAnimations]; 223 } 224 @end
转载于:https://www.cnblogs.com/pocket-mood/p/4331305.html
(纯代码)图片移动放大缩小:相关推荐
- iOS 仿淘宝实现商品规格图片的放大缩小功能
刚好最近在做个商城项目,甲方爸爸说咱们要求不高,你就照着淘宝来就好,额~~~~ 好吧,咱就不吐槽了,直接开撸吧,惯例先上一下效果图 需求以及思路 我们要实现的功能有如下几个: 图片的全屏查看以及保存 ...
- Qt实现长图片的放大缩小以及动态显示
这篇文章是在这个基础上进行讨论的谈一谈分别利用opencv.Qt.matlab动态显示图片的实现 其实就是想找一种更加合适的方法进行图片的放大缩小以及动态显示. 这个是效果图 我把项目命名为Qtmli ...
- element-ui+js+vue——实现图片的放大缩小拖动等功能——技能提升
elementui+js+vue--实现图片组件的封装 1. 实现图片的放大缩小 2. 实现图片的拖动功能 3. 实现图片的预览 最近同事在写一个关于 图片放大缩小拖动的功能,其实不止是图片,只要是在 ...
- jquery 实现点击图片居住放大缩小
jquery 实现点击图片居住放大缩小 该功能是基于jquery实现的,所以 第一步则是引入jquery jquery下载地址:https://jquery.com/download/ 或者使用此时调 ...
- android 自由缩放图片大小,android Matrix实现图片随意放大缩小或拖动
本文实例为大家分享了android Matrix图片随意放大缩小和拖动的具体代码,供大家参考,具体内容如下 step1:新建一个项目DragAndZoom,并准备一张照片放在res/drawable- ...
- Iwfu-安卓Gesture手势(2)-实现多点触控控制图片的放大缩小。
上一篇介绍安卓Gesture手势初步使用,这一篇用Gesture来实现多点触控达到控制图片放大缩小. 上文中写道,进行手势监听的Activity要实现对应的OnGestureListener接口,重写 ...
- html图片自动在div里放大,HTML5+CSS3实现图片的放大/缩小
原标题:HTML5+CSS3实现图片的放大/缩小 最近做项目时,经常遇到需要图片缓慢放大的效果.我做的时候想到了几种方法,所以来总结一下. 1. 利用css改变图片的宽高,做出视觉上的放大. 首先,将 ...
- C语言实现BMP图片的放大缩小
C语言实现BMP图片的放大缩小 BMP图片简介:BMP图片是windows操作系统中的标准图像文件格式,可以分为两类:设备相关位图(DDB)和设备无关位图(DIB),使用广泛.它采用位映射存储格式,除 ...
- Axure9图片拖动放大缩小
Axure9 图片拖动放大缩小 1.设置两个文本域,分别放置图片的宽与高 2.图片的交互设置 3.效果 当去请教一个会的人会的东西,因为他会,会很爽快的说不会可以问我呀,但是当问到不会的东西时,就会说 ...
最新文章
- 第3课:SparkStreaming 透彻理解三板斧之三:解密SparkStreaming运行机制和架构进阶之Job和容错...
- 20.Android studio提示Cmake Error executing external native build for cmake...
- MYSQL表根据列拆分的问题
- MarkdownPad2基础语法
- 初学Ajax相关知识
- PHP3d地球,three.js绘制地球、飞机与轨迹的效果示例
- android 仿京东地址选择_Android 开发:仿美团地址选择
- day07-vue项目-搭建项目到登录功能
- 【CF321E】+【bzoj5311】贞鱼
- Spring 中注入什么意思?
- 工具| PocSuite 使用介绍
- 迭代器java.util.Iterator接口
- JS错误 theForm.submit();SCRIPT3: 找不到成员。
- 结构体做函数参数的进阶:嵌套一二级指针
- Oracle安装步骤(自用)
- 《数据库系统》期末复习知识点总结(全)
- 关于C笔记使用体验和比较
- 如何正确地将Blender模型导入进Unity3D
- numpy数组拼接方法介绍
- python描述数据维度的含义_NumPy中的维度(dimension)、轴(axis)、秩(rank)的含义
热门文章
- OpenGL 自制API gluPerspective
- oracle中的rownum
- python生成随机密码串
- 路由器升级须注意,升级导致功能失灵无法使用无线功能
- The new year,new mood,new plan~~
- html监控服务器状态,HTML5-WebSocket实现对服务器CPU实时监控
- 蓝桥杯 ALGO-29 算法训练 校门外的树(区间处理)
- 【离散数学】单向连通和弱连通的区别
- java分桃子_Java经典编程题分桃子
- vue 前端png转pdf_Vue前端HTML保存为PDF的两种常用方式 「干货分享」