UISegmentedControl和UIAppearance的怪异行为
我通过应用程序委托中的这些语句来设置分段控件的外观。
[[UISegmentedControl appearance] setBackgroundImage:[[UIImage imageNamed:@"segmentation_normal.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0 , 0, 0)] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; [[UISegmentedControl appearance] setBackgroundImage:[[UIImage imageNamed:@"segmentation_selected.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0 , 0, 0)] forState:UIControlStateSelected barMetrics:UIBarMetricsDefault]; [[UISegmentedControl appearance] setDividerImage:[UIImage imageNamed:@"segmentation_divider_NormalNormal.png"] forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; [[UISegmentedControl appearance] setDividerImage:[UIImage imageNamed:@"segmentation_divider_NormalSelected.png"] forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateSelected barMetrics:UIBarMetricsDefault]; [[UISegmentedControl appearance] setDividerImage:[UIImage imageNamed:@"segmentation_divider_SelectedNormal.png"] forLeftSegmentState:UIControlStateSelected rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
结果很好。 当我select任何分段时,背景和分隔线设置正确(应用程序第一次启动时,默认select“分段”)。 当我select释放部分,你可以看到下面的一切看起来不错。
问题是,当我离开视图,然后回到视图(我存储选定的索引,并将其设置在viewDidLoad重新select段),分频器设置不正确的原因不明。
如果我点击AZ然后释放,它自行纠正。 只有当视图第一次加载时,才会出现此错误,并且选定的段是Release或AZ。 select“订单”并加载视图时,分隔线总是看起来很好。
图像大小:分隔符是2px宽(全部3个图像是相同的大小),每个背景是2px宽。
任何想法或指针将高度赞赏,我一直拉我的头发在过去10个小时试图find一个解决scheme没有可用。
这是UISegmentedControl的错误,我想。 您可以通过在延迟后设置所选段来解决此问题,以便控制时间自行绘制。 你甚至不必使用实际的延迟,就像这样:
[self performSelector:@selector(setPreferences) withObject:nil afterDelay:0.0];
setPreferences
更新了分段控件的值。
- Swift:如何从Dictionary中删除空值?
- “尝试删除第1部分中的行,但更新前只有1个部分”
- 创build自定义Segue的正确方法
- 在NSAttributedString中添加图像并保存到Core Data性能
- 在UIView中用xib文件使用CollectionView
- Cordova 2.8.1:在ios上使用photolibarary源的camera.getPicture
- IBM MobileFirst Platform Foundation(MFP)和Bluemix IMFCore SDK中的重复符号
- 当我收到消息iPhone应用程序时,自动填充OTP到TextField
- 自定义照片select器视图