web-dev-qa-db-ja.com

swiftでcolorWithPatternImageとして背景画像を設定する方法

私の質問は、UIViewに画像を表示させることは可能ですか?もしそうなら、どのようにそれを行うのですか?私が見つけることができるのはcolorwithpatternImageだけで、これはSwiftで動作しなくなりました。

現在使用しようとしているコードは次のとおりです。

self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]];  

回答ありがとうございます!

44
Mark Calhoun

UIColor documentation を参照してください。

Swiftでは、便利な初期化子を呼び出す必要があります。これは、Swiftでは、クラスのインスタンスを返すすべてのObjective-Cクラスメソッドが便利な初期化子になるためです。

Swiftでの外観は次のとおりです。

 self.view.backgroundColor = UIColor(patternImage: UIImage(named: "background.png"))

+ (UIColor *)colorWithPatternImage:(UIImage *)imageUIColorインスタンスを返すため、Swiftの便利な初期化子になります。同様に、UIImage imageNamed:init(patternImage image: UIImage!)になります。

118
codester

私はこれを好む:

let backgroundImage = UIImageView(frame: UIScreen.mainScreen().bounds)
backgroundImage.image = UIImage(named: "background.png")
self.view.insertSubview(backgroundImage, atIndex: 0)

画像をbackgroundColorに設定すると、画像が少しぼやけてしまいます。

7
User9527

@ User9527の回答を少し編集しました。なぜ反対票が投じられたのか定かではありません。独自のカスタムフレームを追加しました。

let frame = CGRectMake(10, 55, 45, 45)
let backgroundImage = UIImageView(frame: frame)
backgroundImage.image = UIImage(named: "bg_image")
self.view.insertSubview(backgroundImage, atIndex: 0)
4
Dominic Smith

Imageviewのレイヤープロパティをしようとしている場合、次のようなものを使用する必要があります。

userProfilePic.layer.borderColor = UIColor(patternImage:UIImage(named: "yourimg.png")!).CGColor
1
Suraj K Thomas

上記のコードが機能するには、オプションのバインディングを追加する必要があります。以下に示すように、UIImageの後の感嘆符です。

view.backgroundColor = UIColor(patternImage: UIImage(named: "backgroundSection.png")!)

1
Shweta

スイフト

self.view.backgroundColor = UIColor(patternImage:UIImage(named: "YourImage.png")!)

0
Sai kumar Reddy

これはかなりの努力を要し、参照のためにキャプチャして渡しました。 Swiftでの生成と使用の完全な例については、以下を参照してください。

参考例

デモアプリ

enter image description here

コードの抜粋

デモでUIViewをテクスチャ化する方法を次に示します。完全なリストについてはコードを参照してください-

func genTexturedView(_ view:UIView) {
    ...
    image.image = UIImage(named:"purple_example");
    view.addSubview(image);

    print("ViewController.genTexturedView():    Textured View added");

    return;
}
0
J-Dizzle