1. 程式人生 > >iOS11 UISegmentControl同時設定字型大小和顏色不起使用的解決方案

iOS11 UISegmentControl同時設定字型大小和顏色不起使用的解決方案

以前設定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];