zoukankan      html  css  js  c++  java
  • UISegmentedControl

    前言

    • UISegmentedControl 的 Items 有两种样式,一种是字符串设置的标题样式,一种是图片设置的样式。
    • 图片设置的样式需要处理图片的渲染模式,以原图显示。处理阴影,如果直接设置 image 出现阴影,这时候需要设置图片的渲染模式以原样显示。
    UIImage *image = [UIImage imageNamed:@"hehe.png”];
    image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];  
    

    1、UISegmentedControl 的创建

    // 不设置 frame 时为系统默认大小
    UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems: @[@"大娃", @"二娃", @"三娃", @"四娃"]];
    
    // 将 segmentedControl 添加到 view
    [self.view addSubview:segmentedControl];
    

    2、UISegmentedControl 的设置

    
    // 设置 frame
    segmentedControl.frame = CGRectMake(10, 30, 300, 50);
    
    // 设置位置
    segmentedControl.center = self.view.center;
    
    // 设置背景颜色
    segmentedControl.backgroundColor = [UIColor lightGrayColor];
    
    // 设置 标题文字、边框、选中项 的颜色
    segmentedControl.tintColor = [UIColor redColor];
    
    // 设置标题文字的 颜色、字体 等属性
    [segmentedControl setTitleTextAttributes:@{
    											NSForegroundColorAttributeName: [UIColor blueColor], 
    											NSFontAttributeName: [UIFont boldSystemFontOfSize:20]
    										  }forState: UIControlStateNormal];
    
    // 设置分段标题
    [segmentedControl setTitle:@"123" forSegmentAtIndex:2];
    
    // 设置分段的图片
    [segmentedControl setImage:[[UIImage imageNamed:@"hehe"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] forSegmentAtIndex:0];
    
    // 设置分段标题的偏移量
    [segmentedControl setContentOffset:CGSizeMake(10, 7) forSegmentAtIndex:1];
    
    // 设置默认选中值
    segmentedControl.selectedSegmentIndex = 1;
    
    // 获取选中的分段的索引号
    NSInteger selectIndex = [segmentedControl selectedSegmentIndex];
    
    // 获取选中的分段的标题
    NSString *selectTitle = [segmentedControl titleForSegmentAtIndex:[segmentedControl selectedSegmentIndex]];
    
    // 获取分段个数
    NSUInteger numberOfSegments = segmentedControl.numberOfSegments;
    
    // 插入新分段
    
    // 插入标题文字
    [segmentedControl insertSegmentWithTitle:@"蛇精" atIndex:1 animated:YES];
    
    // 插入图片
    [segmentedControl insertSegmentWithImage:[[UIImage imageNamed:@"hihi"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] atIndex:4 animated:YES];
    
    // 删除分段
    // 删除指定分段
    [segmentedControl removeSegmentAtIndex:0 animated:YES];
    
    // 删除全部分段
    [segmentedControl removeAllSegments];
    
    // 添加点击触发事件
    [segmentedControl addTarget:self action:@selector(segmentedControlClick:) forControlEvents:UIControlEventValueChanged];
    
    
  • 相关阅读:
    技术的极限(8): 集成与分离
    心智与认知(1): 反馈循环(Feedback loop)
    证明与计算(6): 身份认证与授权
    证明与计算(5): 从加密哈希函数到一致性哈希
    技术的极限(6): 密码朋克精神(Cypherpunk Spirit)
    翻译(3): NULL-计算机科学上最糟糕的失误
    工具(5): 极简开发文档编写(How-to)
    证明与计算(3): 二分决策图(Binary Decision Diagram, BDD)
    证明与计算(2): 离散对数问题(Discrete logarithm Problem, DLP)
    翻译(2): How to Write a 21st Century Proof
  • 原文地址:https://www.cnblogs.com/CH520/p/9413482.html
Copyright © 2011-2022 走看看