ios - UISegmentedControl

- UISegmentedControl

创建:
UISegmentedControl *segmentedC = [[UISegmentedControl alloc] initWithItems:@[@"1safgfga", @"2", @"3"]];

  • 常用属性和方法

    1.分段标签的宽度随内容自适应(默认 NO:所有分段宽度一样,取最大分段宽度)

    segmentedC.apportionsSegmentWidthsByContent = YES;

    2.调整分段的宽度

    [segmentedC setWidth:100 forSegmentAtIndex:1];

    3.重设分段内容

    [segmentedC setTitle:@"xd" forSegmentAtIndex:1];

    4.重设分段图片

    [segmentedC setImage:[UIImage imageNamed:@""] forSegmentAtIndex:3];

    5.设置分段风格颜色

    segmentedC.tintColor = [UIColor redColor];
    

6.背景图片

[segmentedC setBackgroundImage:[UIImage imageNamed:@""] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
typedef NS_ENUM(NSInteger, UIBarMetrics) {
    UIBarMetricsDefault,
    UIBarMetricsCompact,
    UIBarMetricsDefaultPrompt = 101, // Applicable only in bars with the prompt property, such as UINavigationBar and UISearchBar
    UIBarMetricsCompactPrompt,

    UIBarMetricsLandscapePhone NS_ENUM_DEPRECATED_IOS(5_0, 8_0, "Use UIBarMetricsCompact instead") = UIBarMetricsCompact,
    UIBarMetricsLandscapePhonePrompt NS_ENUM_DEPRECATED_IOS(7_0, 8_0, "Use UIBarMetricsCompactPrompt") = UIBarMetricsCompactPrompt,
};

7.设置分段分割线

[segmentedC setDividerImage:[UIImage imageNamed:@""] forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateSelected barMetrics:UIBarMetricsDefault];

8.设置分段内文字属性

[segmentedC setTitleTextAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:13]} forState:UIControlStateNormal];

9.添加一个文字新分段

[segmentedC insertSegmentWithTitle:@"gg" atIndex:0 animated:YES];

10.添加一个图片新分段

[segmentedC insertSegmentWithImage:[UIImage imageNamed:@""] atIndex:2 animated:YES];

11.移除所有分段

[segmentedC removeAllSegments];

12.移除对应的分段

[segmentedC removeSegmentAtIndex:0 animated:YES];

13.设置分段内容偏移量

[segmentedC setContentOffset:CGSizeMake(20, 40) forSegmentAtIndex:1];

14.设置分段内容偏移量

[segmentedC setContentPositionAdjustment:UIOffsetMake(100, 100) forSegmentType:UISegmentedControlSegmentLeft barMetrics:UIBarMetricsDefault];

typedef NS_ENUM(NSInteger, UISegmentedControlSegment) {
    UISegmentedControlSegmentAny = 0,  // 所有分段受影响
    UISegmentedControlSegmentLeft = 1,   // The capped, leftmost segment. Only applies when numSegments > 1.
    UISegmentedControlSegmentCenter = 2, // Any segment between the left and rightmost segments. Only applies when numSegments > 2.
    UISegmentedControlSegmentRight = 3,  // The capped,rightmost segment. Only applies when numSegments > 1.
    UISegmentedControlSegmentAlone = 4,  // The standalone segment, capped on both ends. Only applies when numSegments = 1.
};

15.是否保持选中状态(默认NO:不保持选中状态)

segmentedC.momentary = YES;

16.禁用

[segmentedC setEnabled:NO forSegmentAtIndex:0];

  • 获取信息的方法

    NSString *title = [segmentedC titleForSegmentAtIndex:1];
    UIImage *image = [segmentedC imageForSegmentAtIndex:3];
    CGFloat width = [segmentedC widthForSegmentAtIndex:0];
    CGSize size = [segmentedC contentOffsetForSegmentAtIndex:1];
    BOOL isEnable = [segmentedC isEnabledForSegmentAtIndex:0];
    UIImage *bgImage = [segmentedC backgroundImageForState:UIControlStateNormal barMetrics:UIBarMetricsCompact];
    UIImage *dividerImage = [segmentedC dividerImageForLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateSelected barMetrics:UIBarMetricsDefault];
    NSDictionary *titleAttir = [segmentedC titleTextAttributesForState:UIControlStateNormal];
    
    NSInteger selectedIndex = segmentedC.selectedSegmentIndex;
    NSInteger count = segmentedC.numberOfSegments;
    UIOffset offset = [segmentedC contentPositionAdjustmentForSegmentType:UISegmentedControlSegmentLeft barMetrics:UIBarMetricsDefault];

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 我们经常使用的一个控件是Tab,这个控件可以帮助我们将App分为几个模块,但是在一个界面内我们想要再进行细分怎么办...
    Cloudox_阅读 5,614评论 0 2
  • UiView的一些代理 一.<NSCoding> 我们会在以下这些场合用到NSCoding: 1. XIB/Sto...
    爱笑的猫mi阅读 1,226评论 0 1
  • //设置尺寸为屏幕尺寸的时候self.window = [[UIWindow alloc] initWithFra...
    LuckTime阅读 938评论 0 0
  • 创建 增、删选项 获取选项个数 (只读) 样式 设置元素的色调 背景图片 通过序号设置被选中的选项 是否有选中的状...
    JerryLMJ阅读 10,339评论 2 7
  • 我,一个狂放不羁的90后,自由浪漫,喜好文字,这便是我。 我出生在江苏南通的一个小镇,古色古香是我对这座小镇最深的...
    仲明明阅读 279评论 0 0

友情链接更多精彩内容