iOS11 UISegmentControl同時設定字型大小和顏色不起使用的解決方案
阿新 • • 發佈:2019-01-29
以前設定UISegmentControl字型大小和顏色,程式碼我是這樣寫的:
//設定正常狀態和選中狀態下的字型大小
[goodsSementControl setTitleTextAttributes:[NSDictionary dictionaryWithObject:LNLableFont(16.0f) forKey:NSFontAttributeName] forState:UIControlStateNormal];
[goodsSementControl setTitleTextAttributes:[NSDictionary dictionaryWithObject:LNLableFont(16.0 f) forKey:NSFontAttributeName] forState:UIControlStateSelected];
//設定正常狀態和選中狀態下的背景顏色
[goodsSementControl setTitleTextAttributes:[NSDictionary dictionaryWithObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName] forState:UIControlStateNormal];
[goodsSementControl setTitleTextAttributes:[NSDictionary dictionaryWithObject:[UIColor blackColor] for Key:NSForegroundColorAttributeName] forState:UIControlStateSelected];
仔細檢查下,發現在程式碼沒有什麼問題啊,就是達不到自己想要的那種效果。後來發現,設定背景色的程式碼覆蓋了設定字型大小的程式碼,最後換了種設定方式問題解決:
//使用一個字典同時設定字型大小和背景色在某種狀態下
[goodsSementControl setTitleTextAttributes:@{NSFontAttributeName:LNLableFont(16),NSForegroundColorAttributeName:[UIColor whiteColor] } forState:UIControlStateNormal];
[goodsSementControl setTitleTextAttributes:@{NSFontAttributeName:LNLableFont(16),NSForegroundColorAttributeName:[UIColor blackColor]} forState:UIControlStateSelected];