1

selectedImageTintColorプロパティを使用してTabBarController、選択した の色を変更していましたTabBarItem

問題は、設定した色がtintcolor、変更される前に適用される最終的な色ではないことです (ある種のグラデーションが得られます)。

私の質問は、tintcolorあなたが知っている最終的な色を得るために適用する色を見つけることは可能ですか?

たとえば、選択したアイテムの最終的な色を

[UIColor colorWithRed:(154.0/255.0) green:(213.0/255.0) blue:(0.0) alpha:(1.0)

プロパティに設定する必要がある色の RGB は何selectedImageTintColorですか?

4

2 に答える 2

0

Ankit で既に述べたように、最善の策は使用することです

- (void)setFinishedSelectedImage:(UIImage *)selectedImage withFinishedUnselectedImage:(UIImage *)unselectedImage

ただし、これを行うには UIImage が必要であることに感謝します。デザイナーがこれを提供できない場合、できることは、コードで独自の UIImage を描画することです。

- (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;
}

明らかに、このコードはグラデーションを描画しませんが、UIImage の描画の基本を示しています。必要な正確なグラデーションを描画する方法を理解するには、次のようなチュートリアルを見てください。

http://www.raywenderlich.com/2033/core-graphics-101-lines-rectangles-and-gradients

于 2013-01-28T09:16:24.057 に答える
-1

iOS は、色合いのグラデーションを変更するための API を提供していません。ただし、Apple のドキュメントでは、setFinishedSelectedImage:withFinishedUnSelectedImage: メソッドを使用することを提案しています。

詳しくは UITabBarItem リファレンスをご覧ください

于 2013-01-21T15:45:47.377 に答える