UISegmentedControl、UISlider、UISwitch

  1 #import "AppDelegate.h"

  2 

  3 @interface AppDelegate ()

  4 {

  5     UISlider* lider;

  6 }

  7 

  8 @end

  9 

 10 @implementation AppDelegate

 11             

 12 

 13 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

 14     

 15     self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]];

 16     self.window.backgroundColor = [UIColor whiteColor];

 17     [self.window makeKeyAndVisible];

 18     

 19 #pragma mark - UISEGMENTEDCONTROL

 20     // 创建,并初始化设置各个标题,有多少个标题就代表有多少个选项

 21     UISegmentedControl* segmented = [[UISegmentedControl alloc]initWithItems:@[@"Demo1",@"Demo2",@"Demo3",@"Demo4"]];

 22     // 设置位置及大小

 23     [segmented setFrame:CGRectMake(10, 50, 300, 40)];

 24     // 根据下标索引单独指定设置标题

 25     [segmented setTitle:@"Demo3" forSegmentAtIndex:0];

 26     // 根据下标索引单独指定设置图片

 27     [segmented setImage:[UIImage imageNamed:@"lan.png"] forSegmentAtIndex:2];

 28     // 指定索引插入选项并设置图片

 29     [segmented insertSegmentWithImage:[UIImage imageNamed:@"inamgName"] atIndex:1 animated:YES];

 30     // 指定索引插入选项并设置标题

 31     [segmented insertSegmentWithTitle:@"Demo5" atIndex:3 animated:YES];

 32     // 移除指定索引的选项

 33     [segmented removeSegmentAtIndex:0 animated:YES];

 34     // 设置指定索引的宽度

 35     [segmented setWidth:10 forSegmentAtIndex:2];

 36     // 设置指定选项中图片等,左上角的位置

 37     [segmented setContentOffset:CGSizeMake(10.0, 10.0) forSegmentAtIndex:1];

 38     

 39     // 获取指定索引选项的图片 imageForSegmentAtIndex

 40     UIImageView* imageAtIndex = [[UIImageView alloc]initWithImage:[segmented imageForSegmentAtIndex:2]];

 41     imageAtIndex.frame = CGRectMake(60, 100, 30, 30);

 42 //    UIImage* imageAtIndex = [[UIImage alloc]init];

 43 //    imageAtIndex = [segmented imageForSegmentAtIndex:2];

 44 

 45     // 获取指定索引的标题 titleForSegmentAtIndex

 46     UILabel* titleAtIndex = [[UILabel alloc]initWithFrame:CGRectMake(100, 100, 30, 30)];

 47     titleAtIndex.text = [segmented titleForSegmentAtIndex:1];

 48     [self.window addSubview:titleAtIndex];

 49     

 50     // 获取总选项数 segmented.numberOfSegments

 51     UILabel* unmber = [[UILabel alloc]initWithFrame:CGRectMake(140, 100, 30, 30)];

 52     unmber.text = [NSString stringWithFormat:@"%d",segmented.numberOfSegments];

 53     [self.window addSubview:unmber];

 54     

 55     // 获取指定索引选项的宽度widthForSegmentAtIndex:

 56     UILabel* widthAtIndex = [[UILabel alloc]initWithFrame:CGRectMake(180, 100, 70, 30)];

 57     widthAtIndex.text = [NSString stringWithFormat:@"%f",[segmented widthForSegmentAtIndex:2]];

 58     [self.window addSubview:widthAtIndex];

 59     // 设置默认选择项索引

 60     segmented.selectedSegmentIndex = 1;

 61     

 62     // 设置标题颜色

 63     segmented.tintColor = [UIColor redColor];

 64     

 65     // 设置样式 (iOS7.0以后弃用了)

 66     // segmented.segmentedControlStyle = UISegmentedControlStylePlain;

 67     //UISegmentedControlSegmentCenter

 68     

 69     // 设置在点击后是否恢复原样

 70     segmented.momentary = YES;

 71     // 是否可以连续点击

 72     segmented.multipleTouchEnabled = YES;

 73     // 设置指定索选项不可选

 74     [segmented setEnabled:NO forSegmentAtIndex:4];

 75     

 76     // 判断指定索引是否可选

 77     BOOL enableFlag = [segmented isEnabledForSegmentAtIndex:3];

 78     NSLog(@"%d",enableFlag);

 79     

 80     // 移除所有选项

 81     [segmented removeAllSegments];

 82     

 83     /* UISegmentedControl控件的一些自定义样式 */

 84     // 设置背景图片及状态

 85     [segmented setBackgroundImage:[UIImage imageNamed:@"imageName1"] forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];

 86     [segmented setBackgroundImage:[UIImage imageNamed:@"imageName2"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

 87     

 88     // UITextAttributeTextColor  UITextAttributeTextShadowColor  UITextAttributeFont等iOS7.0以后被弃用 改用为 NSForegroundColorAttributeName NSFontAttributeName  NSShadowAttributeName

 89     //NSDictionary* dic = [NSDictionary dictionaryWithObjectsAndKeys:[UIColor redColor],UITextAttributeTextColor,[UIFont systemFontOfSize:15],UITextAttributeFont,[UIColor clearColor],UITextAttributeTextShadowColor, nil];

 90     NSDictionary* dic = [NSDictionary dictionaryWithObjectsAndKeys:[UIColor redColor],NSForegroundColorAttributeName,[UIFont systemFontOfSize:15],NSFontAttributeName,[UIColor clearColor],NSShadowAttributeName, nil];

 91     [segmented setTitleTextAttributes:dic forState:UIControlStateNormal];

 92 

 93     

 94     // 监听事件

 95     [segmented addTarget:self action:@selector(dian:) forControlEvents:UIControlEventValueChanged];

 96     

 97     // 自定义UIBarButtonItem,

 98     UIBarButtonItem* segButton = [[UIBarButtonItem alloc]initWithCustomView:segmented];

 99     // 添加到导航栏中

100     // self.navigationItem.rightBarButtonItem = segButton;

101     

102     // 添加到视图上

103     [self.window addSubview:segmented];

104 

105 

106 #pragma mark - UISLIDER

107     // UISlider---滑杆,UISlider不可以改变高度

108     // 新建slider 并初始化位置及大小,注意:UISlider的高度可以随便设置,不可以为0,为0时滑块滑不动

109     

110     lider = [[UISlider alloc]initWithFrame:CGRectMake(20, 150, 180, 30)];

111     // 设置背景颜色

112     lider.backgroundColor = [UIColor purpleColor];

113     // 不透明度

114     lider.alpha = 0.9;

115     // 设置标签

116     lider.tag = 1;

117     

118     /* 创建完毕的同时我们要设置好滑块的范围,如果你没有设置,那么会使用默认的0.0到1.0之间的值

119      UISlider提供了两个属性来设置范围:minimumValue和maximumValue

120      */

121     // 设置lider所能滑动到的最小值(下限)

122     lider.minimumValue = 0;

123     // 设置lider所能滑动到的最大值(上限)

124     lider.maximumValue = 50;

125     // 同时你也可以为滑块设定一个当前值(初始值)

126     lider.value = 25;

127     // [lider setValue:25 animated:YES];

128     

129     // 得到slider的值

130     float value = lider.value;

131     

132     // 设置了会减小滚动区域的宽度,但整个slider的宽度不变

133     lider.minimumValueImage = [UIImage imageNamed:@"设置slider已滑过的背景图片"];

134     lider.maximumValueImage = [UIImage imageNamed:@"设置slider为滑动的背景图片"];

135     

136     // 设置响应Slider的响应方法

137     [lider addTarget:self action:@selector(sliderValueChange:) forControlEvents:UIControlEventValueChanged];

138     // 默认值为YES,设置为YES只要滑块滚动就会触发change方法,设置为NO只要当滑块停止移动时才会触发change方法

139     lider.continuous = YES;

140 

141 #pragma mark - 滑动条

142     /* 滑动条 */

143     /* 两端添加图片:滑块可以在任何一段显示图像。添加图像后会导致滑动条缩短,所以记得要在创建的时候增加滑块的宽度来适应图像 */

144     // 设置最小区域的图片

145     [lider setMinimumTrackImage:[UIImage imageNamed:@"设置滑块已滑过的滑动条背景图片,最好宽度和slider一样"] forState:UIControlStateNormal];

146     // 设置最大区域的图片

147     [lider setMaximumTrackImage:[UIImage imageNamed:@"设置滑块未滑过的滑动条背景图片,最好宽度和slider一样"] forState:UIControlStateNormal];

148     /* 你可以根据滑块的各种不同状态显示不同的图像,下面是可用状态

149      UIControlStateNormal    // 正常

150      UIControlStateHighlighted // 高亮

151      UIControlStateDisabled // 禁用

152      UIControlStateSelected // 选择

153      */

154     // 得到当前滑块已滑过的图片,如果有的话

155     UIImage* image = [[UIImage alloc]init];

156     image = lider.currentMinimumTrackImage;

157     // 得到当前滑块未滑过的图片,如果有的话

158     image = lider.currentMaximumTrackImage;

159     // 设置滑块已滑过的滑条颜色,如果设置了左边的图片就不会显示

160     lider.minimumTrackTintColor = [UIColor redColor];

161     // 设置滑块未滑过的滑条颜色,如果设置了右边的图片就不会显示

162     lider.maximumTrackTintColor = [UIColor greenColor];

163 

164 #pragma mark - 滑动块

165     /* 滑动块 */

166     // 普通状态

167     [lider thumbImageForState:UIControlStateNormal];

168     // 设置高亮状态的滑块样式

169     [lider setThumbImage:[UIImage imageNamed:@"设置滑块样子的图片"] forState:UIControlStateHighlighted];

170     // 设置滑块的颜色,如果设置了滑块的样式图片就不会显示

171     lider.thumbTintColor = [UIColor greenColor];

172     

173     

174     // 添加到父视图

175     [self.window addSubview:lider];

176     // 添加到导航栏

177     // [self.navigationItem.titleView addSubview:lider];

178     

179     

180     

181 #pragma mark - UISWITCH

182     // 创建switc 并初始化设置位置及大小

183     UISwitch* switc = [[UISwitch alloc]initWithFrame:CGRectMake(20, 220, 100, 100)];

184     // 设置背景颜色

185     switc.backgroundColor = [UIColor whiteColor];

186     // 设置UISwitch的初始化状态,设置初始化为NO的一边

187     switc.on = YES;

188     [switc setOn:YES animated:YES];

189     // 设置响应事件

190     [switc addTarget:self action:@selector(switchIsChange:) forControlEvents:UIControlEventValueChanged];

191     

192     // 开关控件关闭状态边框颜色、(外部颜色)

193     switc.tintColor = [UIColor redColor];

194     // 开关控件切换槽颜色

195     switc.onTintColor = [UIColor greenColor];

196     // 开关控件圆按钮颜色

197     switc.thumbTintColor = [UIColor purpleColor];

198     

199     // 设置控件关闭状态图片

200     switc.onImage = [UIImage imageNamed:@"on"];

201     // 设置控件打开状态图片

202     switc.offImage = [UIImage imageNamed:@"off"];

203     

204     // 添加到视图

205     [self.window addSubview:switc];

206 

207     return YES;

208 }

209 // UISegmentedControl 响应事件

210 - (void)dian:(UISegmentedControl*)segment{

211     NSInteger index = segment.selectedSegmentIndex;

212     switch (index) {

213         case 0:{

214             NSLog(@"Dome1");

215             break;

216         }case 1:{

217             NSLog(@"Dome2");

218             break;

219         }case 2:{

220             NSLog(@"Dome3");

221             break;

222         }case 3:{

223             NSLog(@"Dome4");

224             break;

225         }

226         default:

227             break;

228     }

229 }

230 // UISlider 响应事件

231 - (void)sliderValueChange:(UISlider*)sl{

232     NSLog(@"UISlider........");

233     if ([sl isEqual:lider]) {

234         NSLog(@"ValureUISlider.......");

235     }

236 }

237 // UISwitch 响应事件

238 - (void)switchIsChange:(UISwitch*)sw{

239     NSLog(@"UISwitch......");

240     if (sw.isOn) {

241         NSLog(@"The switch is turned on");

242     }else{

243         NSLog(@"The switch is turned off");

244     }

245 }

 

你可能感兴趣的:(UISegmentedControl、UISlider、UISwitch)