Iphone开发(五)用滑块slider来调节控件透明度

原创 2012年03月27日 21:14:16

holydancer原创,如需转载,请在显要位置注明:

转自holydancer的CSDN专栏,原文地址:http://blog.csdn.net/holydancer/article/details/7400397


控件UISlider称之为滑块,用户可以进行拖拽,可以通过拖拽来调节一些信息,比如音量,背光亮度等,我们今天用滑块来调节一下控件的透明度。

首先去网上找一个iphone壁纸作为我们这个demo的背景图片,下载下来后将其拖到应用中,,然后在右下角media库中会找到这个图片,然后如下图将其拖拽到xib文件上,并按图中标注的进行设置,分别是铺展开,另一个是取消用户响应。取消用户响应我们稍候会作解释,现在将这幅图片设为背景后我们往上面放上两个控件,额,就放一个TextField和一个button吧,然后再拖上一个Slider和一个label用来表示当前透明度。将label的背景设为白色了,不然看不清楚。




这时我们画好界面后,就开始在代码中生成对应的输出口来绑定控件了,在创建xib文件和viewController文件绑定的输出口时,可分别双击xib文件和viewController.h文件打开两个独立窗口,然后在xib文件的窗口中按着control键单击控件并拖拽到viewController.h文件中的声明部分,这样便会弹出一个窗口让你设置输出口的名字,设置好后会自动生在输出口并将其与xib文件中的控件绑定,如下:


这时我们就要写IBAction方法来捕捉滑块的变化了,我们命名为sliderChanged,参数为自动生成的sender,表示该slider.我们将各个控件透明度的变化也写到这个方法里,该方法会捕捉slider值的变化,然后调节各个控件的透明度。另外我们还要再写一个方法用来在文本框编辑时点击别的地方来关闭键盘,命名为closeType,依然标著IBAction用来声明这是一个响应操作。看代码:

viewController.h:

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController
@property (retain, nonatomic) IBOutlet UILabel *myLabel;

@property (retain, nonatomic) IBOutlet UISlider *mySlider;

@property (retain, nonatomic) IBOutlet UITextField *myTextField;
@property (retain, nonatomic) IBOutlet UIButton *myButton;
-(IBAction)closeType:(id)sender;
-(IBAction)sliderChanged:(id)sender;


@end

viewController.m:

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController
@synthesize myLabel;
@synthesize mySlider;
@synthesize myTextField;
@synthesize myButton;
-(IBAction)closeType:(id)sender//该方法与UIControl的touch down行为联系。
{
    [myTextField resignFirstResponder];
    //这个方法由UIControl的touch down行为触发
    //取消myTextField的第一响应者身份用来关闭键盘
}
-(IBAction)sliderChanged:(id)sender//将该方法与slider的value changed行为联系。
{
    UISlider *slider = (UISlider *)sender;//转型
    
    //将当前的slider的值取出转成字符串并改变label的标题
    NSString *str = [[NSString alloc] initWithFormat:@"%f",slider.value];
    myLabel.text=str;
    
    //改变各个控件的透明度为当前的slide的值。
    myLabel.alpha=slider.value;
    myTextField.alpha=slider.value;
    myButton.alpha=slider.value;
    
    //释放使用过的str
    [str release];
    
    
}

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view, typically from a nib.
}

- (void)viewDidUnload
{
    
    [self setMyLabel:nil];
    [self setMySlider:nil];
    [self setMyTextField:nil];
    [self setMyButton:nil];
    [super viewDidUnload];
    // Release any retained subviews of the main view.
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}

- (void)dealloc {
   
    [myLabel release];
    [mySlider release];
    [myTextField release];
    [myButton release];
    [super dealloc];
}
@end

以上控件与IBAction的联系操作我就不画图了,与上次内容一样,这时我们就可以查看效果了:


好了,slider改变透明度完成了,这时我们来解释一下在设置图片背景时,为什么要取消用户响应,也就是如下这个选项是不勾选的:


因为我们在点击textField时会自动弹出软键盘进行编辑,我们需要触摸touch down空闲部分来关闭软键盘,我们的做法是将xib文件的view identity从UIView 改为它的子类UIControl,这样就能响应空闲地方的touch down行为,触动操作方法来关闭键盘,如果我们勾选上图片背景的交互选项,这个view就会被当作是UIControl上的一个控件,但是这个控件是没有touch down行为的,所以这时不会触发,如果取消交互选项,那么在touch图片时,该图片会捕捉到touch down,没有该行为就将其传给下面的UIControl来让其解决,所谓隔山打牛,触碰了该图片,其实就是触碰了UIControl,产生了touch down,所以就能关闭键盘了。写得有点儿啰嗦,多试试就知道是怎么回事了。


关键字:IPhone开发 ,IOS 开发 ,IPhone基础 入门 ,滑块slider ,控件 透明 ,关闭软键盘

版权声明:本文为博主原创文章,未经博主允许不得转载。

Unity学习日常问题记录三 -- Slider的使用

由于需要,不得不研究下Unity中Slider的用法 Unity线上手册中有的Slider中的各项基本说明我就不在说了,添加一个Slider后,我们可以看到Slider作为一个父物体有两层5个子物...
  • Onedimension
  • Onedimension
  • 2016年05月23日 09:47
  • 3581

UGUI的Slider与Gameobject的结合使用

用Slider做一个控制cube旋转速度的滑动功能 首先建立一个cube和一个Slider。然后给cube加一个旋转脚本 然后要把这个slider和cube联系起来。在slider的属...
  • alayeshi
  • alayeshi
  • 2015年09月16日 11:15
  • 878

nivo slider 的常规用法 带缩略图的效果

前段时间我们讲到了nivo slider 的常规用法,但是对于如何做出带缩略图效果依然不是很清楚,这里讲解一下。 完整javascript 代码如下:   $(window).load(funct...
  • youaregoo
  • youaregoo
  • 2013年04月12日 16:34
  • 1815

滑动条ControlSlider的使用

在游戏的设置界面,我们经常会看到有可以设置背景音乐和音效大小的滑动条。 那么在这篇博客中,我们就来学习滑动条ControlSlider的使用。 先来看看ControlSlider的源码: ...
  • sinat_16095273
  • sinat_16095273
  • 2015年07月24日 08:45
  • 2668

NGUI之Slider调节音量大小

今天记录一下添加声音以及用Silder调节音量大小,首先创建一空对象,命名为Volume,然后为其创建子对象music,并给music添加脚本Audio Source,将准备好的音乐素材绑定至Audi...
  • qq_35390518
  • qq_35390518
  • 2017年04月24日 22:50
  • 1096

NGUI之Slider,最简单的方法做进度条。

既然标题是最简单的,那么很多东西就不需要我们自己做了,使用的是NGUI的示例,只针对初学者,接下来让我们来做一个最简单游戏设置里的声音控制。更多精彩请关注【狗刨学习网】      1、导...
  • Carl180
  • Carl180
  • 2015年02月01日 23:36
  • 1772

页面顶部固定漂浮导航栏,漂浮div,div背景透明

顶部漂浮div #div1{ border:#06C 1px solid; position:fixed; width:100%; height:115px; z-ind...
  • hai7425
  • hai7425
  • 2016年08月05日 10:40
  • 548

NGUI控件说明(中文) UISlider

原文:http://www.tasharen.com/forum/index.php?topic=6715.0 概述 UISlider组件可以用来创建一个简单的slider...
  • huang9012
  • huang9012
  • 2014年02月24日 11:15
  • 8905

Android透明状态栏

使用说明:Android4.4以上才有这种效果,附源码 1.导包:compile ‘com.android.support:design:24.1.1’ 2.自定义StatusBarView pub...
  • u011106915
  • u011106915
  • 2016年09月22日 14:30
  • 1317

使jpg图片能够透明的一种方法

效果如图(里面的方体): 注意:化学元素围成的圈,后面的透过方体也能看到!!!。 贴图图片: 第一步:shader的编写 顶点着色器: uniform mat4 uMVPMa...
  • sh15285118586
  • sh15285118586
  • 2015年04月24日 14:23
  • 1514
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Iphone开发(五)用滑块slider来调节控件透明度
举报原因:
原因补充:

(最多只允许输入30个字)