[英]how to programmatically, in Swift, set an uiimageview to the xcode built-in applewatch icon image?
[英]Programmatically set image to UIImageView with Xcode 6.1/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)
但Xcode用bgImage = UIImageView(image: image)
说“预期声明”图像"afternoon"
是一个PNG,我的理解是PNG不需要在XCode 6.1中扩展。
还尝试了bgImage.image = UIImage(named: "afternoon")
,但仍然得到:
UPDATE
好的,我已经把代码更新为UIImageView
到viewDidLoad
函数,但是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)
}
由于您已将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!)
}
}
好的,让它使用它(以编程方式创建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)
这个怎么样;
myImageView.image=UIImage(named: "image_1")
其中image_1在assets文件夹中作为image_1。 png 。
这对我有用,因为我使用开关盒来显示图像幻灯片。
这段代码在错误的地方:
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!
使用快速语法,这对我有用:
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
在Swift 4中,如果图像返回为零。
单击右侧的图像(实用程序) - >检查目标成员身份
如果你想按照你在问题中展示的方式做到这一点,这是一种内联方式
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
}
您只需要拖放ImageView
,创建插座操作,链接它并提供图像(Xcode将在您的assets
文件夹中查找您提供的名称(此处:“toronto”))
在yourProject/ViewController.swift
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var imgView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
imgView.image = UIImage(named: "toronto")
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.