上一次分享了自定义Slider
其实当时在项目中这个slider是用来设置屏幕的亮度,拖动的时候也有预览,如图:

我们来说说屏幕亮度的实现原理吧,可以调用私有API来调节屏幕亮度,但苹果官方审核未必能通得过。所以我的做法原理是:
1、放置一个View盖住整个屏幕(可以在IB里拖好也可以使用代码实现)
2、设置遮挡View的User Interaction Enabled的属性为NO,这样用户点击到这个View就不会有任何互动,我个人理解是这个View既盖住了其他的控件,又不会影响其他控件的点击等互动。
3、设置遮挡View的背景色为黑,Alpha为1.0就是最黑,0就是透明,这样,值越小亮度就越大,值越大亮度就越小。

但是,还是很愦憾,这不是真正的调整了亮度,最亮的亮度还是取决于你自己的iPhone本身的亮度设置。但是聊胜于无,下面,我们来讲讲实现吧!

我使用的是UIImageView哦,至于其他的View,大家都可以自己实验一下。
首先:
在IB中拖一个UIImageView出来,随便放哪里,最好不影响设计,大小也无所谓,因为一会儿在代码中把它占满整个屏幕,UIImageView默认的User Interaction Enabled属性是为NO的,所以不用改:

然后,设置背景色为黑的,在头文件中声明IBOutlet,IB中关联后,现在可以开始写代码了:
在ViewDidLoad方法中,把UIImageView的宽高占满整个View:

[imageCover setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];

上一次说到自定义Slider的 时候,已说过Slider的UIControlEventValueChanged是正在拖动时触发的事件,而 UIControlEventTouchUpInside是拖动完毕时触发的,所以拖动时的预览可以写在ValueChanged中,而如果要记录亮度值 到数据库之类的就写在TouchUpInside事件中,ValueChanged代码:

-(IBAction)sliderValueChanged:(id)sender{  UISlider *slider = (UISlider *)sender;   //slider的value最大设到1.0,因为背景色为黑,所以亮度为1.0-value   [imageCover setAlpha:1.0 - slider.value]; }

以上内容,转载请注明来自博客园,作者:jauntlin

转载于:https://www.cnblogs.com/jauntlin/archive/2011/12/20/2295223.html

使用自定义UISlider控制View亮度相关推荐

  1. 自定义UISlider的样式和滑块

    又做完一个项目,遂到了写帖时间了,要跟大家分享的是:自定义UISlider的图片和滑块,先看一下效果: 然后是实现了,我们使用的是UISlider的setMinimumTrackImage,和setM ...

  2. Android 开发中原始音频的录播和和自定义音频控制条的讲解及实战(超详细 附源码)

    需要源码请点赞关注收藏后评论区留下QQ~~~ 一.原始音频的录播 语音通话功能要求实时传输,如果使用MediaRecorder与MediaPlayer组合,那么只能整句话都录完并编码好了才能传给对方去 ...

  3. java 贝塞尔曲线_贝塞尔曲线:原理、自定义贝塞尔曲线View、使用!!!

    一.原理 转自:http://www.2cto.com/kf/201401/275838.html Android动画学习Demo(3) 沿着贝塞尔曲线移动的Property Animation Pr ...

  4. 光敏电阻控制led亮度程序_单片机开发系统学习LED亮度控制原理

    早期控制LED亮度的方法一般是采用模拟电路来调节LED的工作电流来实现,这种方式灵活性较差,很难达到智能控制的效果.本文将介绍如何通过一个普通MCS51单片机来产生PWM信号,达到调节LED的亮度的目 ...

  5. android显示通知栏Notification以及自定义Notification的View

    遇到的最大的问题是监听不到用户清除通知栏的广播.所以是不能监听到的. 自定义通知栏的View,然后service运行时更改notification的信息. /*** Show a notificati ...

  6. 控制led亮度C语言程序,单片机pwm控制led亮度原理图

    单片机pwm控制led亮度原理图 用51产生PWM去控制LED,首先要确定PWM的周期T和占空比D,确定了这些以后,可以用定时器产生一个时间基准t,比如定时器溢出n次的时间是PWM的高电平的时间,则D ...

  7. OpenHarmony如何控制屏幕亮度

    大家在拿到dayu之后,都吐槽说,会经常熄屏,不利于调试,那么有没有一种办法,可以让app不熄屏呢,答案是有的,今天我们就来揭秘一下,如何控制屏幕亮度 1.控制屏幕常亮 首先导入模块 import b ...

  8. 基于 Thingsboard 平台自定义 RPC 控制类小部件示例

    基于 Thingsboard 平台自定义 RPC 控制类小部件示例 1. 小部件介绍 2. 创建小部件 3. 部件编辑器 3.1 简介 3.2 资源 / HTML / CSS 3.3 JavaScri ...

  9. android:elevation属性,控制View底部渐变阴影

    android:elevation属性,控制View底部渐变阴影 android:elevation这一属性,可以控制View底部渐变阴影,给一个View在其底部增加一定的灰度渐变阴影效果,如图: 上 ...

最新文章

  1. CUDA tool URL
  2. Java Review - 创建线程和线程池时建议指定与业务相关的名称
  3. go语言定义二维数组
  4. boost::geometry::enrich_intersection_points用法的测试程序
  5. 关于fragment backstate的介绍
  6. Linux系统平台上安装和配置Ruby on Rails
  7. 如何在SAP云平台ABAP编程环境里创建自己的Z表
  8. 最强鸿蒙系统txt_鸿蒙系统升级时间确认,哪些手机有望成为首批“宠儿”?
  9. python创建数据库计算机积极拒绝、无法连接_Python3 请求网页源码 目标计算机积极拒绝,无法连接...
  10. 大数——大数判等(hdu2054)
  11. 方法重载与重写,返回类型
  12. 【Antlr】Antlr 将 CSV文件 转成Map数据结构
  13. stl:空间配置器的标准接口
  14. 红帽Red Hat Linux镜像下载
  15. windos开启IIS管理器
  16. 基于智慧灯杆(路灯)的新型智慧城市物联网系统集成解决方案
  17. Node.js安装(window10需要管理员权限)
  18. php商城添加加入购物车,php添加购物车,php购物车
  19. 国家级精品课程 电子资源 网址
  20. 【用户角色权限设计】

热门文章

  1. #pragma指令与#ifndef指令
  2. MFC_Combo_Box(组合框)的详细用法
  3. 基于 Express 与 Mongodb 的简易 实现一个多人 blog
  4. MySQL编译安装及主从配置
  5. Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer]
  6. CSS 行内格式化上下文中的各种高度计算
  7. 利用MAVEN打包可运行jar包,包括依赖的第三方包
  8. iReport使用方法
  9. Number of 1 bits
  10. Apache配置--用户认证(针对目录访问)-update2015-05-02