使用XCode 6.1 / Swift以编程方式将图像设置为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)
“预期的声明”图像"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")
。 运行此代码后,图像显示正常,因为它已被分配使用sockets。
但是,如果它不是一个出口,你没有它已经连接到故事板/ 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!) } }
在xcode 8中,您可以直接从select窗口(NEW)中select图像…
-
你只需要input“image”,你会得到一个build议框,然后从列表中select“Image Literal”(见附图)
-
然后点击广场,你将能够看到所有的图像(见英寸
第二张附加的图片),它们位于您的图片资源中…或者从那里select其他图片。
- 现在点击方框 – (select上面的选项后,你会看到方框)
好吧,得到它的工作(编程创buildUIImageView):
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位于资源文件夹中,名称为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)
你必须把它放在一个函数里面。 我build议将其移动到viewDidLoad
函数中。
通常,你可以在类中添加的不在函数内部的唯一代码是variables声明,如:
@IBOutlet weak var bgImage: UIImageView!
在Swift 4中,如果图像返回为零。
点击图片,在右侧(实用工具) – >检查目标成员
用快速的语法,这对我工作:
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