現在、下図の様な
画像・カスタムボタン(チェックボックス風)・テキスト
を持つカスタムセルをCollectionViewに配置しています。
このカスタムセル内のボタン(チェックボックス)をクリックした時に「選択できません」という画像を表示ようとしているのですがうまくいきません。
画像の表示はレイアウトの中央に非表示(image.hidden=true)のイメージを設置しておいて、クリックで表示に変える(image.hidden=false)ように考えています。
宜しくお願いいたしますm(..)m
Swift
1class RecViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate{ 2 3 override func viewDidLoad() { 4 super.viewDidLoad() 5 } 6 7 // Protocol: UICollectionViewDelegate 8 func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell{ 9 let cell:CustomCell = collectionView.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath) as! CustomCell 10 //チェックボックス風の画像設定 11 cell.checkBox.setImage(UIImage(named:"cb_fragment_false")!, forState: .Normal) 12 cell.checkBox.setImage(UIImage(named:"cb_fragment_true")!, forState: .Selected) 13 14 setCellData() 15 cell.setCell(customCellDatas[indexPath.row]) 16 return cell 17 } 18 19 func setCellData(){ 20 //画像の設定等、色々省略します 21 22 for num in 0...14 { 23 customCellDatas.append( 24 CustomCellData(title: titles[num], image: images[num], number: (num-1))) 25 } 26 } 27 28 func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int { 29 return 1 30 } 31 32 func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 33 return 15 34 } 35 override func didReceiveMemoryWarning() { 36 super.didReceiveMemoryWarning() 37 } 38}
Swift
1class CustomCell: UICollectionViewCell { 2 3 @IBOutlet weak var ivTitle: UIImageView! //テキストも画像です 4 @IBOutlet var image: UIImageView! 5 @IBOutlet weak var checkBox: UIButton! 6 var number: Int! 7 8 override init(frame: CGRect){ 9 super.init(frame: frame) 10 } 11 12 required init(coder aDecoder: NSCoder){ 13 super.init(coder:aDecoder)! 14 } 15 16 func setCell(customCellData: CustomCellData){ 17 ivTitle.image = customCellData.title 18 image.image = customCellData.image 19 number = customCellData.number 20 checkBox.addTarget(self, action: #selector(CustomCell.onClick), forControlEvents: .TouchUpInside) 21 } 22 23 func onClick(){ 24 checkBox.selected = !checkBox.selected 25 //ここからRecViewControllerのUIを変更できるのでしょうか? 26 } 27 28}
swift
1class CustomCellData: NSObject{ 2 3 var title: UIImage 4 var image: UIImage 5 var number: Int 6 7 init(title:UIImage, image:UIImage, number:Int){ 8 self.title = title 9 self.image = image 10 self.number = number 11 } 12}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/15 10:55