修改UISegmentedControl文本的字体和颜色时的注意
很多时候我们会使用UISegmentedControl来做菜单切换,根据自己的需求难免需要定制文本的字体大小和选中前后的字体颜色,其实修改字体大小和更改颜色的实现方式很简单,网上一搜一大把,比如下面是我常用的方式:
//初始化
segmentedControl = [[UISegmentedControl alloc] initWithItems:@[@"标题1",@"标题2"]];
segmentedControl.frame = CGRectMake(0, 0, 180, 30);
segmentedControl.clipsToBounds = YES;
segmentedControl.layer.cornerRadius = 12;
segmentedControl.layer.borderColor = [UIColor whiteColor].CGColor;
segmentedControl.layer.borderWidth = 1;
segmentedControl.backgroundColor = [UIColor clearColor];
segmentedControl.tintColor = [UIColor whiteColor];
segmentedControl.selectedSegmentIndex = 0;
[segmentedControl addTarget:self action:@selector(onSegmentValueChanged:) forControlEvents:UIControlEventValueChanged];
1.修个字体大小
NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont systemFontOfSize:17.0f],NSFontAttributeName ,nil];
[segmentedControl setTitleTextAttributes:dic forState:UIControlStateNormal];
[segmentedControl setTitleTextAttributes:dic forState:UIControlStateSelected];
2.修改字体颜色(kWhiteColor-白色,kTopBarBgColor-导航栏颜色)
[segmentedControl setTitleTextAttributes:[NSDictionary dictionaryWithObject:kWhiteColor forKey:NSForegroundColorAttributeName] forState:UIControlStateNormal];
[segmentedControl setTitleTextAttributes:[NSDictionary dictionaryWithObject:kTopBarBgColor forKey:NSForegroundColorAttributeName] forState:UIControlStateSelected];
上面就是设置字体大小和颜色的代码,当然网上可能有其他写法,但是本质是一样的。我这样要说的不仅仅是这些,而是在设置这个的时候需要注意的地方。也行有人会说这个注意什么啊,只要代码写了就OK了啊,不过我想也有人遇到过设置了以后没有效果的经历吧,如果你设置了就OK了,那么说明你设置的顺序对了,巧了,就避过了问题所在。这里的问题就是设置的时候要先设置颜色后设置字体,否则设置的字体大小是没有效果的。这个是大家需要注意的地方,也是我写本文的目的。