2015-07-18 18 views
7

Düğme için görüntüyü program aracılığıyla ayarlamaya çalışırken "sıfır" hatası alıyorum. Neyi yanlış yapıyorum? Bunların hepsi isteğe bağlı değil.Swift/Xcode düğmesindeki görüntü nasıl ayarlanır

@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 
+0

Kod görüntüsünü burada yayınlamayın. kodunuzu sorgunuza yapıştırın. –

+0

Tamam, bunu düzelteceksin, teşekkürler – user190494

+1

'imageButton'' nil' çünkü ona hiç bir değer atamadınız. –

cevap

15

Görüntüyü Image'den tekrar oluşturuyorsunuz.

Sadece

imageButton.setImage(images[index],forState:UIControlState.Normal) 

işe yarayacak Umut gibi yapacağız.

Ya hoşuna yapabilirsiniz:

var images = [String]? 

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) 

viewDidLoad yılında Ve

+0

Aynı hata, ama teşekkürler – user190494

+0

Teşekkür etti, teşekkür ederim! – user190494

1

görüntü Varlıklar olması gerekir, projeniz mevcut olmalıdır görüntü için kontrol Bir görüntü seti olarak. xcassets ... v.smooth çalışır!

+0

Hmm. Resimlerimi xcasset'lere koymam gerekmedi. Bunu eninde sonunda yapacağım. –

İlgili konular