图片展示效果如下:

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

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. sqlserver -- 学习笔记(五)查询一天、一周、一个月记录(DateDiff 函数)(备忘)

    Learn From : http://bjtdeyx.iteye.com/blog/1447300 最常见的sql日期查询的语句 --查询当天日期在一周年的数据 ) --查询当天的所有数据 ) -- ...

  2. 20款优秀的国外 Mobile App 界面设计案例

    在下面给大家分享的移动应用程序界面设计作品中,你可以看到不同创意类型的视觉效果.如果你想获得灵感,那很有必要看看下面20个优秀用户体验的移动应用 UI 设计.想要获取更多的灵感,可以访问移动开发分类, ...

  3. 推荐几款很棒的 JavaScript 表单美化和验证插件

    表单元素让人爱恨交加.作为网页最重要的组成部分,表单几乎无处不在,从简单的邮件订阅.登陆注册到复杂的需要多页填写的信息提交功能,表单都让开发者花费了大量的时间和精力去处理,以期实现好用又漂亮的表单功能 ...

  4. stl的优先级队列

    #include <iostream> #include <vector> #include <queue> using namespace std; class ...

  5. BZOJ1015 并查集

    1015: [JSOI2008]星球大战star war Description 很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治者整个星系.某一天,凭着一个偶然的机遇,一支反抗军摧毁了 ...

  6. Installation and Upgrading

    Cumulative Feature Overview Identifies product features available to you when upgrading. This tool r ...

  7. ASP.NET的简单与面向对象开发

    ASP.NET开发,一开始是为了超赶时间完成任务,只能把功能实现即可.如下面一个功能,在网页中有一个铵钮,用户点一点切换网页的图片,再点一点又切换回来.我们要怎样做?在铵钮事件中去变更图片的路径即可. ...

  8. Python入门笔记(8):列表

    一.序列类型操作符 1.切片[]和[:] 2.成员关系操作符(in ,not in ) 1: s1 = [1,2,3,4,5,6,7] 2: s2 = [2,3,6] 3: s3 = [] 4: fo ...

  9. 关于C#读取MySql数据时,返回DataTable中某字段数据是System.Array[]形式

    我在使用C#(VS2008)读取MySql数据库(5.1版本)时,返回的DataTable数据中arrivalDate字段数据显示为System.Array[]形式(程序中没有对返回的数据进行任何加工 ...

  10. 【jQuery基础学习】08 编写自定义jQuery插件

    目的:虽然jQuery各种各样的功能已经很完善了,但是我们还是要学会自己去编写插件.这样我们可以去封装一些项目中经常用到的专属的代码,以便后期维护和提高开发效率. jQuery插件的类型: 封装对象方 ...