UISlider显示进度(并且实现图片缩放)
图片展示效果如下:
其他没什么好说的,直接上代码:
RootView.h:
- #import <UIKit/UIKit.h>
- @interface RootView : UIView
- @property (nonatomic, strong) UISlider *slider;
- @property (nonatomic, strong) UILabel *label;
- @property (nonatomic, strong) UIImageView *imageView;
- @end
RootView.m:
- #import "RootView.h"
- @implementation RootView
- - (instancetype)initWithFrame:(CGRect)frame {
- if (self = [super initWithFrame:frame]) {
- // 添加子视图
- [self add];
- }
- return self;
- }
- // 添加子视图
- - (void)add {
- // 添加slider
- self.slider = [[UISlider alloc] initWithFrame:CGRectMake(, , self.frame.size.width - * , )];
- self.slider.minimumValue = 0.0;
- self.slider.maximumValue = 100.0;
- [self addSubview:self.slider];
- // 添加label
- self.label = [[UILabel alloc] init];
- self.label.textAlignment = NSTextAlignmentCenter;
- self.label.layer.cornerRadius = ;
- self.label.layer.borderWidth = ;
- self.label.layer.borderColor = [UIColor greenColor].CGColor;
- self.label.font = [UIFont fontWithName:@"Gill Sans" size:];
- [self addSubview:self.label];
- // 添加图片
- self.imageView = [[UIImageView alloc] initWithFrame:CGRectMake(, , , )];
- self.imageView.image = [UIImage imageNamed:@"u=347478478,461363313&fm=11&gp=0.jpg"];
- [self addSubview:self.imageView];
- }
- @end
RootViewController.m:
- #import "RootViewController.h"
- #import "RootView.h"
- @interface RootViewController ()
- @property (nonatomic, strong) RootView *rootView;
- @end
- @implementation RootViewController
- - (void)loadView {
- self.rootView = [[RootView alloc] initWithFrame:[UIScreen mainScreen].bounds];
- self.view = self.rootView;
- }
- - (void)viewDidLoad {
- [super viewDidLoad];
- // 为slider添加一个滑动事件(注意添加的事件是改变数据的事件UIControlEventValueChanged)
- [self.rootView.slider addTarget:self action:@selector(slding:) forControlEvents:UIControlEventValueChanged];
- }
- #pragma mark - 实现滑动事件
- - (void)slding:(UISlider *)sender {
- // 1.实现滑动显示进度(百分比)
- // 创建一个图片控制器,并且获取slider控件的某一个子控件(就是进度条的滑块,位置是2)
- UIImageView *imageView = [self.rootView.slider.subviews objectAtIndex:];
- // 获取滑块在父视图上的位置
- CGRect nowRect = [self.rootView convertRect:imageView.frame fromView:imageView.superview];
- // 根据滑块的位置来设置label的位置
- self.rootView.label.frame = CGRectMake(nowRect.origin.x - , nowRect.origin.y - , nowRect.size.width, nowRect.size.height);
- // 定义一个NSInteger类型的变量来接收滑块当前滑动到的位置
- NSInteger x = self.rootView.slider.value;
- // 在label上显示滑块的位置
- self.rootView.label.text = [NSString stringWithFormat:@"%ld%%",x];
- // 2.实现图片缩放
- // 创建一个图片控制器,并且获取slider控件的某一个子控件(就是进度条的滑块,位置是2)
- UIImageView *imageView1 = [self.rootView.slider.subviews objectAtIndex:];
- // 获取滑块在父视图上的位置
- CGRect imageRect = [self.rootView convertRect:imageView1.frame fromView:imageView.superview];
- // 重新设置图片的frame
- self.rootView.imageView.frame = CGRectMake( - (imageRect.origin.x - ) / , - (imageRect.origin.x - ) / 2, + imageRect.origin.x - , + imageRect.origin.x - );
- }
- - (void)didReceiveMemoryWarning {
- [super didReceiveMemoryWarning];
- // Dispose of any resources that can be recreated.
- }
- @end
UISlider显示进度(并且实现图片缩放)的更多相关文章
- python-----opencv读视频、循环读图片显示进度条
功能:opencv读视频,显示进度条,推动进度条快进.后退,按q退出.代码如下: import os import cv2 def nothing(emp): pass def jindu(name, ...
- CSS实现图片缩放特效
今天是感恩节,祝大家感恩节快乐哦!最近天冷了,大家注意保暖哟.下面一起看看小颖写的demo吧. html代码: <!DOCTYPE html> <html> <head& ...
- iOS开发UI篇—UIScrollView控件实现图片缩放功能
iOS开发UI篇—UIScrollView控件实现图片缩放功能 一.缩放 1.简单说明: 有些时候,我们可能要对某些内容进行手势缩放,如下图所示 UIScrollView不仅能滚动显示大量内容,还能对 ...
- Android图片缩放方法
安卓开发中应用到图片的处理时候,我们通常会怎么缩放操作呢,来看下面的两种做法: 方法1:按固定比例进行缩放 在开发一些软件,如新闻客户端,很多时候要显示图片的缩略图,由于手机屏幕限制,一般情况下,我们 ...
- Android安卓开发中图片缩放讲解
安卓开发中应用到图片的处理时候,我们通常会怎么缩放操作呢,来看下面的两种做法: 方法1:按固定比例进行缩放 在开发一些软件,如新闻客户端,很多时候要显示图片的缩略图,由于手机屏幕限制,一般情况下,我们 ...
- UIScrollView 之图片缩放
UIScrollView 之图片缩放 有些时候,我们可能要对某些内容进行手势缩放,如下图所示 UIScrollView不仅能滚动显示大量内容,还能对其内容进行缩放处理 也就是说,要完成缩放功能的话,只 ...
- Android----基于多触控的图片缩放和拖动代码实现
引自:http://www.codefans.net/articles/584.shtml 一个android中自定义的ImageView控制,可对图片进行多点触控缩放和拖动类,包括了对图片放大和图片 ...
- ajax上传文件显示进度
下面要做一个ajax上传文件显示进度的操作,文末有演示地址 这里先上代码: 1.前端代码 upload.html <!DOCTYPE html> <html lang="e ...
- Android图片加载框架最全解析(七),实现带进度的Glide图片加载功能
我们的Glide系列文章终于要进入收尾篇了.从我开始写这个系列的第一篇文章时,我就知道这会是一个很长的系列,只是没有想到竟然会写这么久. 在前面的六篇文章中,我们对Glide的方方面面都进行了学习,包 ...
随机推荐
- Struts2知多少(2) Struts2 是什么
Struts2是流行和成熟的基于MVC设计模式的Web应用程序框架. Struts2不只是Struts1下一个版本,它是一个完全重写的Struts架构. WebWork框架开始以Struts框架为基础 ...
- Hadoop第9周练习—Hive部署测试(含MySql部署)
1.1 2 :搭建Hive环境 内容 2.2 3 运行环境说明 1.1 硬软件环境 线程,主频2.2G,6G内存 l 虚拟软件:VMware® Workstation 9.0.0 build-8 ...
- 前端们,gulp该用起来了,简单的demo入门——gulp系列(一)
gulp.grunt前端自动化工具,只有用过才知道多么重要. 它们问世这么久了?你真的用过吗? 写个简单的less.watch任务的demo分享———— 1.准备: 安装全局node.npm,这个教程 ...
- "浅谈Android"第二篇:活动(Activity)
距离上一篇文章,过去有半个多月了,在此期间忙于工作,疏于整理和总结,特此写下这篇博文,来谈谈自己对Activity的理解.总所周知,Activity组件在Android中的重要性不言而喻,我们 ...
- Android 学习笔记之使用多线程实现断点下载...
PS:莫名其妙的迷茫... 学习内容: 1.使用多线程实现文件下载... 多线程下载是加快下载速度的一种方式..通过开启多个线程去执行一个任务..可以使任务的执行速度变快..多线程的任务下载时常都 ...
- “康园圈--互联网+校园平台“项目之Sprint3
sprint3任务列表 1.部署项目内测版上线,并绑定相应域名. 2.添加测试用的模拟数据. 3.写已实现功能及效果汇报文档. 4.写项目总结博客. 5.记录并分析用户反馈. 看板动态 第一次 第二次 ...
- 利用DropDownList实现下拉
在视图的Model<Vo>里面我们需要使用IEnumerable来将别的列表的数据全部的转化为下拉列表.下面是关于在项目中实际的写法. 一:实现下拉属性列表的写法 通过使用Select ...
- 数论 - 高精度Fibonacci数 --- UVa 10183 : How Many Fibs ?
How many Fibs? Description Recall the definition of the Fibonacci numbers: f1 := 1 f2 := 2 fn := f n ...
- PHP的加密解密字符串函数
程序中经常使用的PHP加密解密字符串函数 代码如下: /********************************************************************* 函数 ...
- 无法将类型为“System.Windows.Controls.SelectedItemCollection”的对象强制转换为类型“System.Collections.Generic.IList`1
在WPF中DataGrid 选择事件中获取SelectedItems 报错如下 无法将类型为“System.Windows.Controls.SelectedItemCollection”的对象强制转 ...