使用XCode 6.1/Swift以编程方式将图像设置为UIImageView

Ill*_*u36 77 xcode ios swift

我正在尝试在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)
Run Code Online (Sandbox Code Playgroud)

但是Xcode说bgImage = UIImageView(image: image) Image的"预期声明" "afternoon"是一个PNG,我的理解是PNG不需要在XCode 6.1中扩展.

也尝试过bgImage.image = UIImage(named: "afternoon"),但仍然得到:

在此输入图像描述

UPDATE

好的,我已将代码更新UIImageViewviewDidLoad函数中,但UIImageView仍然没有显示图像(它存在于基本目录中,如下午.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)
}
Run Code Online (Sandbox Code Playgroud)

小智 145

由于您已将bgImage指定并链接为IBOutlet,因此无需将其初始化为UIImageView ...而您只需设置图像属性即可bgImage.image = UIImage(named: "afternoon").运行此代码后,图像显示正常,因为它已使用插座分配.

在此输入图像描述

但是,如果它不是一个插座,并且你没有将它连接到storyboard/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!)
    }
}
Run Code Online (Sandbox Code Playgroud)


Vij*_*rma 44

在xcode 8中,您可以直接从选择窗口中选择图像(新)...

  • 你只需要输入 - "图像",然后你会得到一个建议框然后从列表中选择 - "Image Literal"(见附图)和

  • 然后点击正方形,您将能够看到图像资源中的所有图像(请参见
    第二张附图)或从中选择其他图像.

在此输入图像描述

  • 现在点击方框 - (选择上面的选项后你会看到那个方框)

在此输入图像描述

  • 哇,第一次在IDE中看到类似的东西,现在我的代码看起来很酷 (2认同)

Ill*_*u36 8

好的,让它使用它(以编程方式创建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)
Run Code Online (Sandbox Code Playgroud)


小智 6

这个怎么样;

myImageView.image=UIImage(named: "image_1")
Run Code Online (Sandbox Code Playgroud)

其中image_1在资源文件夹中的名称为image_1。png

这对我有用,因为我使用的是开关盒来显示图像幻灯片。


Alf*_*sen 5

此代码位于错误的位置:

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

你必须把它放在一个函数中。我建议将它移到viewDidLoad函数内部。

通常,您可以在类中添加但不在函数内部的唯一代码是变量声明,例如:

@IBOutlet weak var bgImage: UIImageView!
Run Code Online (Sandbox Code Playgroud)