图片展示效果如下:

其他没什么好说的,直接上代码:

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显示进度(并且实现图片缩放)的更多相关文章

  1. python-----opencv读视频、循环读图片显示进度条

    功能:opencv读视频,显示进度条,推动进度条快进.后退,按q退出.代码如下: import os import cv2 def nothing(emp): pass def jindu(name, ...

  2. CSS实现图片缩放特效

    今天是感恩节,祝大家感恩节快乐哦!最近天冷了,大家注意保暖哟.下面一起看看小颖写的demo吧. html代码: <!DOCTYPE html> <html> <head& ...

  3. iOS开发UI篇—UIScrollView控件实现图片缩放功能

    iOS开发UI篇—UIScrollView控件实现图片缩放功能 一.缩放 1.简单说明: 有些时候,我们可能要对某些内容进行手势缩放,如下图所示 UIScrollView不仅能滚动显示大量内容,还能对 ...

  4. Android图片缩放方法

    安卓开发中应用到图片的处理时候,我们通常会怎么缩放操作呢,来看下面的两种做法: 方法1:按固定比例进行缩放 在开发一些软件,如新闻客户端,很多时候要显示图片的缩略图,由于手机屏幕限制,一般情况下,我们 ...

  5. Android安卓开发中图片缩放讲解

    安卓开发中应用到图片的处理时候,我们通常会怎么缩放操作呢,来看下面的两种做法: 方法1:按固定比例进行缩放 在开发一些软件,如新闻客户端,很多时候要显示图片的缩略图,由于手机屏幕限制,一般情况下,我们 ...

  6. UIScrollView 之图片缩放

    UIScrollView 之图片缩放 有些时候,我们可能要对某些内容进行手势缩放,如下图所示 UIScrollView不仅能滚动显示大量内容,还能对其内容进行缩放处理 也就是说,要完成缩放功能的话,只 ...

  7. Android----基于多触控的图片缩放和拖动代码实现

    引自:http://www.codefans.net/articles/584.shtml 一个android中自定义的ImageView控制,可对图片进行多点触控缩放和拖动类,包括了对图片放大和图片 ...

  8. ajax上传文件显示进度

    下面要做一个ajax上传文件显示进度的操作,文末有演示地址 这里先上代码: 1.前端代码 upload.html <!DOCTYPE html> <html lang="e ...

  9. Android图片加载框架最全解析(七),实现带进度的Glide图片加载功能

    我们的Glide系列文章终于要进入收尾篇了.从我开始写这个系列的第一篇文章时,我就知道这会是一个很长的系列,只是没有想到竟然会写这么久. 在前面的六篇文章中,我们对Glide的方方面面都进行了学习,包 ...

随机推荐

  1. JS思维之路菜鸟也能有大能量(1)--模拟push

    因为本系列文章属于思维类,所以不做基础方法的讲解. 任务:首先我定义了一个变量var arr = [0,1,2,3,4,5];我现在想模拟push方法在这个数组的5后面加东西,我们应该怎么做?给你5分 ...

  2. DataTables 入门使用

    前言简述 DataTables是一个JavaScript类库,它操作HTML表格,改变表格CSS样式,增强表格功能使其更具有交互性. DataTables依赖于JQuery类库. 入门示例 环境:Da ...

  3. 二项堆(三)之 Java的实现

    概要 前面分别通过C和C++实现了二项堆,本章给出二项堆的Java版本.还是那句老话,三种实现的原理一样,择其一了解即可. 目录1. 二项树的介绍2. 二项堆的介绍3. 二项堆的基本操作4. 二项堆的 ...

  4. Clipping Magic – 帮助你轻松删除图片背景

    Clipping Magic 让您轻松去除图片的背景,可以根据路径进行裁剪.操作很简单,只需拖动图像到放置区,或使用按钮选择文件.标记前景为绿,背景为红色,然后标记算法会帮助你处理好细节.处理后的图片 ...

  5. (翻译)为你的MVC应用程序创建自定义视图引擎

    Creating your own MVC View Engine For MVC Application 原文链接:http://www.codeproject.com/Articles/29429 ...

  6. SQL语句技巧:查询存在一个表而不在另一个表中的数据记录

    方法一(仅适用单个字段)使用 not in ,容易理解,效率低 select A.ID from A where A.ID not in (select ID from B) 方法二(适用多个字段匹配 ...

  7. SQL Server 2005 Service Broker

    一.引言 SQL Server 2005 的一个主要成就是可以实现可靠.可扩展且功能完善的数据库应用程序.与 .NET Framework 2.0 公共语言运行库 (CLR) 的集成使开发人员可以将重 ...

  8. 轻松认识JVM运行时数据区域(使用思维导图)

    下面是个人阅读周志明编写的深入浅出Java虚拟机做成思维导图的笔记,线条.颜色和图片的视觉印象比起单纯文字笔记好得太多了,文字笔记的枯燥以及硬性记忆我就不再多说,特别对于JVM这块略微有点枯燥的知识, ...

  9. hibernate集成

    hibernate是一个优秀的持久化框架负责简化将对象保存到数据库中,或从数据库中读取数据并封装到对象的工作.hibernate通过简单配置和编码即可替代jdbc繁琐的程序代码. 下面是集成hiber ...

  10. Mysql查找所有项目开始时间比之前项目结束时间小的项目ID

    这是之前遇到过的一道sql面试题,供参考学习: 查找所有项目开始时间比之前项目结束时间小的项目ID mysql> select * from t2; +----+---------------- ...