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];
    
    
  • 相关阅读:
    下一周计划
    strategy模式
    Roc加载模块过程
    博客园开通了
    MO sample中的缓冲冲区的例子很简单的一个例子
    作为一个想成为程序员的人来说
    试试用live writer写博客到博客园
    Tomcat崩溃,无法访问
    The class Form1 can be designed, but is not the first class in the file.
    Exception in thread "Timer0" java.lang.NullPointerException
  • 原文地址:https://www.cnblogs.com/CH520/p/9413482.html
Copyright © 2011-2022 走看看