2012-10-12 71 views
3

我的SearchBar的TintColor有問題。我在導航欄和搜索欄上使用相同的RGB顏色。正如你在下面看到的,顏色是不一樣的。SearchBar TintColor no applied correct

enter image description here

這是我用來設置導航欄的TintColor代碼:

self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:34/255.0f green:113/255.0f blue:179/255.0f alpha:1]; 

,這是我用來設置搜索欄的TintColor。

self.mySearchBar.tintColor = [UIColor colorWithRed:34/255.0f green:113/255.0f blue:179/255.0f alpha:1]; 

所以,正如你所看到的那樣,這兩條線幾乎是一樣的。關於如何獲得相同顏色的任何想法?

任何意見,非常感謝!

編輯: 我開發適用於iOS 4.0的XCode 4.3.3和我的設備上測試了iOS 5的

+0

它可能有助於告訴我們您正在開發/測試哪個版本。 – rdurand

+0

我使用XCode 4.3.3開發了iOS 4.0,我在iOS 5設備上進行了測試,謝謝,我編輯了我的帖子 – Marco

+0

謝謝,這可能有助於複製這種情況。事實上,我在iOS 5.1上做了一個快速測試,看起來工作正常......你可以試用iOS 5.1+嗎? – rdurand

回答

6

我有類似的問題,這是我結束瞭然後做,

[[UISearchBar appearance] setBackgroundImage:[UIImage imageWithColor:[UIColor colorWithRed:34/255.0f green:113/255.0f blue:179/255.0f alpha:1]]]; 
[[UIToolbar appearance] setBackgroundImage:[UIImage imageWithColor:[UIColor colorWithRed:34/255.0f green:113/255.0f blue:179/255.0f alpha:1]] forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault]; 

但這種方法的問題是,它不會完全着色。

更新: imageWithColorUIImage上的類別。

+ (UIImage *)imageWithColor:(UIColor *)color { 
    CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f); 
    UIGraphicsBeginImageContext(rect.size); 
    CGContextRef context = UIGraphicsGetCurrentContext(); 

    CGContextSetFillColorWithColor(context, [color CGColor]); 
    CGContextFillRect(context, rect); 

    UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    return image; 
} 
+0

並沒有找到問題的根源? – rdurand

+0

否。在我的情況下,這個問題只會在iOS 6設備上發佈。它在其他設備上工作正常。這就是我記得的。 – iDev

+0

這對我很有用。好主意! imageWithColor應該被添加到庫中:-)! – Marco