iOS基础 -- UISegmentControl

/**
     *  UISegmentContorl
     */
    
    NSArray *items = [[NSArray alloc] initWithObjects:@"iPhone",@"iPad",@"iPod",@"iMac", nil];
    self.mySegmentControl = [[UISegmentedControl alloc] initWithItems:items];
    
    //NSArray *segments = @[@"iPhone",[UIImage imageNamed:@"ipad.png"],@"iPod",@"iMac"];
    //self.mySegmentControl = [[UISegmentedControl alloc] initWithItems:segments];
    //CGRect segmentFrame = self.mySegmentControl.frame;
    //segmentFrame.size.width = 300.0f;
    //segmentFrame.size.height = 128.0f;
    //self.mySegmentControl.frame = segmentFrame;
    
    self.mySegmentControl.center = self.view.center;
    [self.mySegmentControl addTarget:self action:@selector(segmentChanged:) forControlEvents:UIControlEventValueChanged];
    //self.mySegmentControl.momentary = YES;//won't remain the state
    [self.view addSubview:self.mySegmentControl];

以上是添加UISegmentControl到当前view。target方法如下:

-(void) segmentChanged:(UISegmentedControl *)paramSender
{
    if([paramSender isEqual:self.mySegmentControl]){
        NSUInteger segmentIndex = [paramSender selectedSegmentIndex];
        NSString *segmentTitle = [paramSender titleForSegmentAtIndex:segmentIndex];
        NSLog(@"segment at %ld is %@",(long)segmentIndex,segmentTitle);
    }
}

上面的属性设置部分,值得注意的时momentary属性,这个属性表达为在是否只有在操作时,才短暂保留当前的选中的状态,默认状态是NO。

此外UISegmentControl中,各分段也可以是图文混合的方式。当然元素仅限NSString和UIImage两种形式。官方声明如下:

- (id)initWithItems:(NSArray *)items; // items can be NSStrings or UIImages. control is automatically sized to fit content
默认是自适应高宽,当然也可以如上例所示自己通过修改frame去修改。

在iOS7中,官方已经弃用了UISegmentControl的segmentedControlStyle属性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值