

Xcodeで、pdfをVectorでimagesetに登録しています。  
そのリソースをタブバーの画像として使用しているのですが、 presentViewControllerで画面を表示し、
画面を閉じると画像の白い部分が塗りつぶされてしまいます。  
アクティブタブの場合は、完全に画面が切り替わると、 正常に戻りますが、アクティブタブで無い場合、 塗りつぶされたままになってしまいます。  
塗りつぶされた状態にならない方法はありますか？  
  
iOS8で発生しており、iOS6では発生しません。


CC BY-SA 3.0
2014-12-13T05:24:15.197
1580
2015-07-13T04:11:28.313
2014-12-13T08:17:14.460
33
1030
question
objective-c pdf
UITabBarItemに設定した画像が塗りつぶされてしまう


今更ですが...  
- (UIImage *)imageWithRenderingMode:(UIImageRenderingMode)renderingMode; で、UIImageRenderingModeAlwaysOriginalを指定して作成した画像をUITabBarItemに設定することで解決できました。
[code]

    @interface UIImage (ForTabBar)
    + (UIImage*)imageNamedForTabBar:(NSString*)name;
    @end
    
    @implementation UIImage (ForTabBar)
    + (UIImage*)imageNamedForTabBar:(NSString*)name {
        UIImage* image = [UIImage imageNamed:name];
        if ([image respondsToSelector:@selector(imageWithRenderingMode:)]) {
            return [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
        }
        return image;
    }
    @end
    
    
        // タブバーに画像を設定
        if ([controller.tabBarItem respondsToSelector:@selector(initWithTitle:image:selectedImage:)]) {
            // iOS7から、普通にimageNamedで読み込んだ画像を設定すると
            // UIImageRenderingModeAlwaysTemplateモードで描画されるそうです。
            // オリジナル画像を表示する場合は、UIImageのimageWithRenderingMode関数で読み込んだ画像を
            // 設定しないと塗りつぶされます。
            controller.tabBarItem = [[HDMainTabBarItem alloc]
                                     initWithTitle:title
                                     image:[UIImage imageNamedForTabBar:@"select.png"]
                                     selectedImage:[UIImage imageNamedForTabBar:@"unselect.png"]];
        } else {
            UIImage* unselectedImage = [UIImage imageNamedForTabBar:@"unselect.png"];
            controller.tabBarItem = [[HDMainTabBarItem alloc]
                                     initWithTitle:title
                                     image:unselectedImage
                                     tag:0];
            [controller.tabBarItem
             setFinishedSelectedImage:unselectedImage
             withFinishedUnselectedImage:[UIImage imageNamedForTabBar:@"select.png"]];
        }
    
[/code]


CC BY-SA 3.0
2015-04-14T02:07:56.553
9133
2015-04-14T02:07:56.553
1030
1580
answer