图片展示效果如下:

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

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. Yii中 RBAC(基于角色的访问控制权限)表结构原理分析

    这里有几个概念很重要,我简单用大白话说一下; 权限:就是指用户是否可以执行哪些操作. 如:小张可以发帖.回帖.浏览,小红只能回帖.浏览 角色:就是上面说的一组操作的集合. 如:高级会员有发帖.回帖.删 ...

  2. SharePoint 2013中的爬网最佳做法

    了解在 SharePoint Server 2013 中爬网的最佳做法 搜索系统对内容进行爬网,以构建一个用户可以对其运行搜索查询的搜索索引.本文包含有关如何最有效地管理爬网的建议. 本文内容: 使用 ...

  3. css优先级和层叠

    css优先级和层叠 1.优先级    计算方法:        a.行内样式        b.id选择器的数量        c.类,伪类和属性选择器的数量        d.标签选择器和伪元素选择 ...

  4. 另一个 OleDbParameterCollection 中已包含 OleDbParameter 错误分析及解决办法

    程序非常简单,就是从一个表中取出一个符合要求的数据,如果取到,就把该数据对应的计数加1.也就是执行不同的两个SQL语句操作同一个表,并且这两个SQL的参数是一样的.在一个函数里完成这个调用.执行第二个 ...

  5. Week3 博客阅读感想和代码复审

    一.关于博客阅读感想 阅读了十多篇老程序员(大多在计算机相关行业工作超过10年)关于自身经历的博客,很有感触.这里一方面总结一下看博客的收获,另一方面写点自己的感受. 首先,这些博客不少涉及到了两大类 ...

  6. ASP.NET运行时详解 集成模式和经典模式

    遗留问题 在<ASP.NET运行时详解 生命周期入口分析>中遗留两个问题,包括Application的InitInternal方法执行细节.IIS6和II7经典模式请求管道管理类Appli ...

  7. C#中方法的调用

    C#中方法的调用 1.同一个类中方法的调用: 静态方法可以直接调用静态方法 静态方法不能直接调用非静态方法,静态方法先生成. 非静态方法可以直接调用静态方法 如果静态方法要调用非静态的方法,必须使用实 ...

  8. c++转C#

    //c++:HANDLE(void   *)          ----    c#:System.IntPtr        //c++:Byte(unsigned   char)     ---- ...

  9. PowerShell 从网站上下载文件

    在cmd下 执行powershell,可能会出现禁止运行的策略, 运行如下命令: powershell set-executionpolicy remotesigned 然后运行: powershel ...

  10. DevExpress GridControl功能总结

    写在前面,Dev控件已经很久了,功能也很强大,截止到现在我编写文档出来的Dev的版本已经到了14.1了,看了Demo真的很强大,效果也很好,结合自己这一个月开发,分享一下自己研究过后的经验,不让大家走 ...