博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UI<10> - UISegmentControl<10>
阅读量:6568 次
发布时间:2019-06-24

本文共 3216 字,大约阅读时间需要 10 分钟。

//声明对象
@property (
nonatomic,
strong) UISegmentedControl *segmentedcontrol;
 
//标题
    NSArray *segmentArry = [NSArray arrayWithObjects:
@"中国",
@"美国",
@"大不列颠英国",
@"俄罗斯",
nil];
    //初始化
   
self.segmentedcontrol = [[UISegmentedControl alloc] initWithItems:segmentArry];
    //iOS 7.0后被弃用
    //self.segmentedcontrol.segmentedControlStyle = UISegmentedControlStylePlain;
   
self.segmentedcontrol.frame = CGRectMake(20, 40, self.view.frame.size.width-40, 30);
    //默认值为NO,即点击后保持选中状态,如果设置为YES则,只是短暂的显示选中状态
   
self.segmentedcontrol.momentary =
YES;
    //指示控件是否根据其内容宽度来调整片段宽度
   
self.segmentedcontrol.apportionsSegmentWidthsByContent =
YES;
    //设置UISegmentedControl的边框、分割线、文字、点击后的颜色
   
self.segmentedcontrol.tintColor = [UIColor blueColor];
   
   
    //通过Attribute字符串属性字典设置Segment标签属性(正常状态下)
    [
self.segmentedcontrol setTitleTextAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:15.0],NSForegroundColorAttributeName:[UIColor purpleColor]} forState:UIControlStateNormal];
  
  //通过Attribute字符串属性字典设置Segment标签属性(选中状态下)
     [
self.segmentedcontrol setTitleTextAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:15.0],NSForegroundColorAttributeName:[UIColor redColor]} forState:UIControlStateSelected];
   
   
    //添加事件
    [
self.segmentedcontrol addTarget:
self action
:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged];
   
    [
self.view addSubview:
self.segmentedcontrol];
   
//事件点击方法
- (
void)segmentAction:(UISegmentedControl *)click{
   
  
  //UISegmentedControl的段数
    NSInteger totelindext =
self.segmentedcontrol.numberOfSegments;
   
//当前选中Segment
    NSInteger selectindext =
self.segmentedcontrol.selectedSegmentIndex;
    NSLog(
@"共分:%ld段,当前选中:%ld段",totelindext,selectindext);
  
  //指定索引点插入新标题
    [
self.segmentedcontrol insertSegmentWithTitle:
@"德国" atIndex:selectindext animated:
YES];
 
   //指定索引点插入新图片
    [
self.segmentedcontrol insertSegmentWithImage:[UIImage imageNamed:
@"flag"] atIndex:selectindext animated:
YES];
    //移除指定Segment
    [
self.segmentedcontrol removeSegmentAtIndex:selectindext+1 animated:
YES];
  
  //移除全部Segment
    [
self.segmentedcontrol removeAllSegments];
    //设置指定Segment的标题
    [
self.segmentedcontrol setTitle:
@"日本" forSegmentAtIndex:0];
    //返回指定Segment的标题
    NSString *segmentTitle = [
self.segmentedcontrol titleForSegmentAtIndex:0];
    NSLog(
@"索引为:0的标题设置为:%@",segmentTitle);
    //设置指定Segment的image
    [
self.segmentedcontrol setImage:[UIImage imageNamed:
@"flag"] forSegmentAtIndex:0];
    //返回指定Segment的image
    UIImage *segmentImage = [
self.segmentedcontrol imageForSegmentAtIndex:0];
     NSLog(
@"索引为:0的图片设置为:%@",segmentImage);
    //设置指定Segment的宽度 默认(0,0)自适应
    [
self.segmentedcontrol setWidth:100 forSegmentAtIndex:0];
  
  //返回指定Segment的宽度
    CGFloat segmentW = [self.segmentedcontrol widthForSegmentAtIndex:0];
    NSLog(
@"索引为:0的Segment宽度设置为:%.2f",segmentW);
  
  //设置指定Segment的偏移量
    [
self.segmentedcontrol setContentOffset:CGSizeMake(5.0, 2.0) forSegmentAtIndex:0];
 
   //获取指定Segment的偏移量
    CGSize segmentSize = [self.segmentedcontrol contentOffsetForSegmentAtIndex:0];
     NSLog(
@"索引为:0的Segment偏移量设置为:%@", NSStringFromCGSize(segmentSize));
    //设置指定Segment是否有效
    [
self.segmentedcontrol setEnabled:
YES forSegmentAtIndex:0];
    //返回指定Segment是否有效
   
BOOL segmentBool = [
self.segmentedcontrol isEnabledForSegmentAtIndex:0];
    NSLog(
@"索引为:0的Segment当前是否可以点击:%@",segmentBool ?
@"可以":
@"不可以");
 
   
}
 
 
 
 

转载于:https://www.cnblogs.com/iQingYang/p/6693884.html

你可能感兴趣的文章
ClipDrawable--水漫起来的效果
查看>>
osd内的pg数量
查看>>
shell脚本与mysql交互方法汇总
查看>>
Cron 表达式详解和案例
查看>>
Android - 软件自动更新的实现
查看>>
oracle数据库远程不落地导入本地数据库
查看>>
dns相关内容
查看>>
JavaScript骚操作
查看>>
MySQL的主从复制与读写分离原理
查看>>
luaCPU性能测试
查看>>
mysql优化
查看>>
【批处理】for循环中产生不同的随机数
查看>>
Gradle -help
查看>>
/etc/security/limits.conf
查看>>
js 框架
查看>>
android 实现ListView中添加RaidoButton单选
查看>>
Oracle数据库:启动操作
查看>>
linux下的防火墙
查看>>
SNAT与DNAT
查看>>
Linux 修改密码“ Authentication token manipulation err”
查看>>