ios - 変更 - uinavigationbar title alpha




image tintColorを変更するにはどうすればいいですか? (7)

Swift 3.0では、TintedUIImageViewというUIImageViewのカスタムサブクラスを作成しました。 これで、イメージはインタフェースビルダまたはコードで設定された色合いを使用します

class TintedUIImageView: UIImageView {

    override func awakeFromNib() {
        if let image = self.image {
            self.image = image.withRenderingMode(.alwaysTemplate)
        }
    }
}

私はサーバーからイメージを受け取っています。そして、ユーザーが選択した色に基づいて、イメージの色が変更されます。

私は以下を試みた:

_sketchImageView.image = [_sketchImageView.image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
[_sketchImageView setTintColor:color];

私は私の目標の反対を得た(UIImageの外の白い色は選ばれた色で着色されている)。

何がうまくいかないの?

私はこの質問で同じことをする必要があります、提供された解決策は私の場合を解決しません。 iOSとWatchKitで画像のtintColorを変更する方法


Swift 3.0では、この拡張機能を使用することができます:[@ VietHungのobjective-cソリューションに基づいて]

extension UIImage {
    func imageWithColor(_ color: UIColor) -> UIImage? {
        var image = imageWithRenderingMode(.alwaysTemplate)
        UIGraphicsBeginImageContextWithOptions(size, false, scale)
        color.set()
        image.draw(in: CGRect(x: 0, y: 0, width: size.width, height: size.height))
        image = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        return image
    }
}

swift 2.0ではこれを使うことができます

let image = UIImage(named:"your image name")?.imageWithRenderingMode(.AlwaysTemplate)
let yourimageView.tintColor = UIColor.redColor()
yourimageView.image = image

swift 3.0ではこれを使うことができます

let image = UIImage(named:"your image name")?.withRenderingMode(.alwaysTemplate)
let yourimageView.tintColor = UIColor.red
yourimageView.image = image

あなたができることの1つは、XcodeのAssetsフォルダにイメージを追加し、レンダリングモードをTemplate Imageに変更するだけです。そのため、UIImageViewの色合いを変更するたびにイメージが自動的に変更されます。

このリンクを確認してください - > https://www.google.co.in/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&ved=0ahUKEwiM0YXO0ejTAhUIQ48KHfGpBpgQjRwIBw&url=https%3A%2F%2Fkrakendev.io%2Fblog%2F4-xcode-asset-catalog-secrets-you-need-to-know&psig=AFQjCNGnAzVn92pCqM8612o1R0J9q1y7cw&ust=1494619445516498


あなた自身のために新しいイメージを生成しようとする

UIImage *newImage = [_sketchImageView.image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
UIGraphicsBeginImageContextWithOptions(image.size, NO, newImage.scale);
[yourTintColor set];
[newImage drawInRect:CGRectMake(0, 0, image.size.width, newImage.size.height)];
newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

_sketchImageView.image = newImage;

それを使ってください。

がんばろう

=======更新する=======

このソリューションは、すべてのピクセルの画像の色のみを変更します。

例:書籍画像があります: http://pngimg.com/upload/book_PNG2113.png : http://pngimg.com/upload/book_PNG2113.png

上記のコード実行後(exp: TintColorは赤) 我々は持っています:

あなたのイメージはあなたがそれをどのようにデザインしたかによって決まります


ここでは、Swiftを使用してIOS 9でティントを適用して使用する方法について説明します。

//apply a color to an image
//ref - http://.com/questions/28427935/how-can-i-change-image-tintcolor
//ref - https://www.captechconsulting.com/blogs/ios-7-tutorial-series-tint-color-and-easy-app-theming
func getTintedImage() -> UIImageView {

    var image     : UIImage;
    var imageView : UIImageView;

    image = UIImage(named: "someAsset")!;
    let size  : CGSize = image.size;
    let frame : CGRect = CGRectMake((UIScreen.mainScreen().bounds.width-86)/2, 600, size.width, size.height);

    let redCover : UIView = UIView(frame: frame);

    redCover.backgroundColor = UIColor.redColor();
    redCover.layer.opacity = 0.75;

    imageView       = UIImageView();
    imageView.image = image.imageWithRenderingMode(UIImageRenderingMode.Automatic);

    imageView.addSubview(redCover);

    return imageView;
}

画像ビューのスーパービューで色合いの色を設定してみてください。 例: [self.view setTintColor:color];





tintcolor