web-dev-qa-db-ja.com

XCode 6.1 / Swiftを使ってプログラムでimageをUIImageViewに設定する

私はXCode 6.1でプログラム的にUIImageViewを設定しようとしています:

@IBOutlet weak var bgImage: UIImageView!

var image : UIImage = UIImage(named:"afternoon")!
bgImage = UIImageView(image: image)
bgImage.frame = CGRect(x: 0, y: 0, width: 100, height: 200)
view.addSubview(bgImage)

しかし、XcodeはbgImage = UIImageView(image: image) Image "afternoon"は「期待される宣言」と言っています、そして私の理解するところではPNGはXCode 6.1の拡張を必要としません。

またbgImage.image = UIImage(named: "afternoon")だけを試してみましたが、それでもなお:

enter image description here

UPDATE

UIImageViewを更新するコードをviewDidLoad関数に追加しましたが、UIImageViewはまだイメージを表示していません(これは、afternoon.pngとしてベースディレクトリに存在します)。

 @IBOutlet weak var bgImage: UIImageView!
    @IBOutlet weak var dateLabel: UILabel!
    @IBOutlet weak var timeLabel: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        updateTime()
        var timer = NSTimer()
        let aSelector : Selector = "updateTime"
        timer = NSTimer.scheduledTimerWithTimeInterval(0.01, target: self, selector: aSelector, userInfo: nil, repeats: true)

        var image : UIImage = UIImage(named:"afternoon")!
        bgImage = UIImageView(image: image)

    }
75
IlludiumPu36

BgImageを割り当ててIBOutletとしてリンクしているので、それをUIImageViewとして初期化する必要はありません。代わりに、imageプロパティをbgImage.image = UIImage(named: "afternoon")のように設定するだけです。このコードを実行した後、アウトレットを使用してすでに割り当てられているので、画像は正常に見えました。

enter image description here

ただし、それがアウトレットではなく、ストーリーボード/ xibファイルのUIImageViewオブジェクトにすでに接続されていない場合は、次のようになります。

class ViewController: UIViewController {
    var bgImage: UIImageView?

    override func viewDidLoad() {
        super.viewDidLoad()

        var image: UIImage = UIImage(named: "afternoon")!
        bgImage = UIImageView(image: image)
        bgImage!.frame = CGRectMake(0,0,100,200)
        self.view.addSubview(bgImage!)
    }
}
137
c_rath

Xcode 8では、選択ウィンドウから直接画像を選択することができます(NEW)...

  • 「image」と入力するだけで、候補ボックスが表示されますので、リストから「Image Literal」を選択します(添付の写真を参照)。

  • それからあなたはすべての画像を見ることができるようになるでしょう四角形をタップします。
    あなたの画像アセットにある 2枚目の添付画像)またはそこから他の画像を選択します。

enter image description here

  • 今正方形のボックスをタップ - (あなたは上記のオプションを選択した後にあなたはその正方形のボックスが表示されます)

enter image description here

40
Vijay Sharma

これでうまくいきました(プログラムでUIImageViewを作成する):

var imageViewObject :UIImageView

imageViewObject = UIImageView(frame:CGRectMake(0, 0, 600, 600))

imageViewObject.image = UIImage(named:"afternoon")

self.view.addSubview(imageViewObject)

self.view.sendSubviewToBack(imageViewObject)
8
IlludiumPu36

これはどう;

myImageView.image=UIImage(named: "image_1")

ここで、image_1はアセットフォルダー内のimage_1と同じですpng

スライドを表示するためにスイッチケースを使っているので、これは私のために働きました。

6
dnaatwork.com

このコードは間違った場所にあります。

var image : UIImage = UIImage(named:"afternoon")!
bgImage = UIImageView(image: image)
bgImage.frame = CGRect(x: 0, y: 0, width: 100, height: 200)
view.addSubview(bgImage)

あなたはそれを関数の中に置かなければなりません。 viewDidLoad関数内に移動することをお勧めします。

一般に、関数の内側ではないクラス内に追加できる唯一のコードは、次のような変数宣言です。

@IBOutlet weak var bgImage: UIImageView!
4
Alfie Hanssen

あなたがあなたの質問で示した方法でそれをやりたいのであれば、これはインラインでそれを行う方法です。

class YourClass: UIViewController{

  @IBOutlet weak var tableView: UITableView!
  //other IBOutlets

  //THIS is how you declare a UIImageView inline
  let placeholderImage : UIImageView = {
        let placeholderImage = UIImageView(image: UIImage(named: "nophoto"))
        placeholderImage.contentMode = .scaleAspectFill
        return placeholderImage
    }()

   var someVariable: String!
   var someOtherVariable: Int!

   func someMethod(){
      //method code
   }

   //and so on
}
1
Annjawn

Swiftのシンタックスではこれは私のために働きました:

    let leftImageView = UIImageView()
    leftImageView.image = UIImage(named: "email")

    let leftView = UIView()
    leftView.addSubview(leftImageView)

    leftView.frame = CGRect(x: 0, y: 0, width: 40, height: 40)
    leftImageView.frame = CGRect(x: 10, y: 10, width: 20, height: 20)
    userNameTextField.leftViewMode = .always
    userNameTextField.leftView = leftView
1
KOTIOS

Swift 4では、画像がnilとして返された場合。

右側の画像をクリックします(公益事業) - >会員資格の確認

1
YaBoiSandeep