自定义UISegmentedControl

本文介绍如何自定义一个UISegmentedControl以满足特定需求,支持竖屏和横屏,并使用Masonry进行自动布局。通过遍历数组创建按钮,均匀分布并设置响应事件。点击事件中,改变选中按钮颜色,更新其他按钮状态,并通过代理方法传递点击的按钮索引。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系统自带的UISegmentedControl有很多的限制 ,有时候为了满足自己的需求可能需要自己定制,本文就是我在做需求的时候自己定义的一个UISegmentedControl,支持很竖屏 ,使用Masonry自动布局.效果如下:

1 竖屏

这里写图片描述

2 横屏

这里写图片描述

整个控件是继承自 UIView 的 从类方法中传入的数组的个数根据数组的个数新建相同个数的 button ,button 的 title 是相应的数组中的内容.那么整个过程需要处理的事有下面三部分:1,新建 button 2 均布 button 3 button 的响应事件

一,新建 button

主要的地方是类方法中,当接收到外面传入的标题数组时,对数组的处理 ,其中需要创建 button 和对 button 进行均布处理

代码如下:

  • (void)creatBtnWithTitles:(NSArray*)titles{

    NSIntegercount = titles.count;

for(intindex =0; index < titles.count; index++) {

//1>创建

UIButton*btn = [[UIButtonalloc]init];

[btnsetTitle:titles[index]forState:UIControlStateNormal];

[btnsetTitleColor:[UIColorcolorFromHexRGB:@”ffffff”]forState:UIControlStateSe

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值