Ios 如何在Swift/Xcode中设置按钮的图像

Ios 如何在Swift/Xcode中设置按钮的图像,ios,xcode,swift,xcode7-beta3,Ios,Xcode,Swift,Xcode7 Beta3,我在尝试以编程方式设置按钮的图像时收到一个“nil”错误。我做错了什么?这些都不是可选的 @IBOutlet weak var scrollView: UIScrollView! var imageButton: UIButton! var index: Int = 0 var images: [UIImage] = [UIImage(named: "image1.png")!, UIImage(named: "image2.png")!, UIImage(named: "image3.pn

我在尝试以编程方式设置按钮的图像时收到一个“nil”错误。我做错了什么?这些都不是可选的

@IBOutlet weak var scrollView: UIScrollView!

var imageButton: UIButton!
var index: Int = 0

var images: [UIImage] = [UIImage(named: "image1.png")!, UIImage(named: "image2.png")!, UIImage(named: "image3.png")!, UIImage(named: "image4.png")!, UIImage(named: "image5.png")!, UIImage(named: "image6.png")!, UIImage(named: "image7.png")!, UIImage(named: "image8.png")!, UIImage(named: "image9.png")!, UIImage(named: "image10.png")!, UIImage(named: "image11.png")!, UIImage(named: "image12.png")!, UIImage(named: "image13.png")!, UIImage(named: "image14.png")!, UIImage(named: "image15.png")!, UIImage(named: "image16.png")!, UIImage(named: "image17.png")!, UIImage(named: "image18.png")!, UIImage(named: "image19.png")!, UIImage(named: "image20.png")!, UIImage(named: "image21.png")!, UIImage(named: "image22.png")!, UIImage(named: "image23.png")!, UIImage(named: "image24.png")!, UIImage(named: "image25.png")!, UIImage(named: "image26.png")!, UIImage(named: "image27.png")!, UIImage(named: "image28.png")!, UIImage(named: "image29.png")!, UIImage(named: "image30.png")!]


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

    let screenSize: CGRect = UIScreen.mainScreen().bounds
    let screenWidth = screenSize.width
    //let screenHeight = screenSize.height

    let numWidth: CGFloat = 3
    let numHeight: CGFloat = 10
    self.scrollView.frame.size.width = screenWidth
    let width: CGFloat = (self.scrollView.frame.size.width - (numWidth + 1))/3

    for var i:CGFloat = 0; i < 3; ++i{
        for var j:CGFloat = 0; j < 10; ++j {

            let image: UIImage = images[index] as UIImage!


            imageButton.setImage(image,forState:UIControlState.Normal)
            imageButton.frame = CGRectMake(width*i, width*j, width, width)
            self.scrollView.addSubview(imageButton)

            index++
        }
    }
    scrollView.contentSize.height = (width)*numHeight
@IBMOutlet弱var scrollView:UIScrollView!
var imageButton:UIButton!
var指数:Int=0
var images:[UIImage]=[UIImage(名为:“image1.png”)、UIImage(名为:“image2.png”)、UIImage(名为:“image3.png”)、UIImage(名为:“image4.png”)、UIImage(名为:“image5.png”)、UIImage(名为:“image6.png”)、UIImage(名为:“image7.png”)、UIImage(名为:“image8.png”)、UIImage(名为:“image9.png”)、UIImage(名为:“image10.png”)、UIImage(名为:“image11.png”)!、UIImage(名为:“image12.png”)!、UIImage(名为:“image13.png”)!、UIImage(名为:“image15.png”)!、UIImage(名为:“image16.png”)!、UIImage(名为:“image17.png”)!、UIImage(名为:“image18.png”)、UIImage(名为:“image19.png”)!、UIImage(名为:“image20.png”)、UIImage(名为:“image21.png”)!,UIImage(名为:“image22.png”)!,UIImage(名为:“image23.png”)!,UIImage(名为:“image24.png”)!,UIImage(名为:“image25.png”)!,UIImage(名为:“image26.png”)!,UIImage(名为:“image27.png”)!,UIImage(名为:“image29.png”)!,UIImage(名为:“image30.png”)!]
重写func viewDidLoad(){
super.viewDidLoad()
//加载视图后,通常从nib执行任何其他设置。
让屏幕大小:CGRect=UIScreen.mainScreen().bounds
设screenWidth=screenSize.width
//设screenHeight=screenSize.height
设numWidth:CGFloat=3
设numHeight:CGFloat=10
self.scrollView.frame.size.width=屏幕宽度
let width:CGFloat=(self.scrollView.frame.size.width-(numWidth+1))/3
对于变量i:CGFloat=0;i<3;++i{
对于变量j:CGFloat=0;j<10;++j{
让image:UIImage=images[index]作为UIImage!
imageButton.setImage(图像,用于状态:uicontrol状态.正常)
imageButton.frame=CGRectMake(宽度*i,宽度*j,宽度,宽度)
self.scrollView.addSubview(图像按钮)
索引++
}
}
scrollView.contentSize.height=(宽度)*numHeight

我认为您又在从图像创建图像了

就这样做吧

imageButton.setImage(images[index],forState:UIControlState.Normal)
希望它能起作用

或者你可以这样做:

var images = [String]?
viewDidLoad

images = ["image1.png","image2.png"]
let img : UIImage = UIImage(named: images[index])!
imageButton = UIButton.buttonWithType(UIButtonType.System) as UIButton
button.frame = CGRectMake(100, 100, 100, 100)//Set your own frame
imageButton.setImage(img,forState:UIControlState.Normal)

并检查图像它必须在您的项目中可用

图像需要在Assets.xcsets中作为图像集…工作正常!

不要在此处张贴代码图像。将代码粘贴到您的问题中。确定会解决此问题,谢谢
imageButton
nil
,因为您从未为其赋值。嗯。我不需要将我的我最终会这样做的。