J'ai donc créé un iCarousel et j'ai pu l'exécuter avec succès. J'ai cependant besoin de charger plus d'un carrousel sur le viewcontroller. J'ai trouvé le code multiple d'iCarousels et j'ai essayé de l'adapter à Swift. Maintenant, malheureusement, je reçois un signal Thread1 SIGABRT qui s'affiche sur la ligne "class AppDelegate". Je n'ai vraiment aucune idée de pourquoi ça fait ça.iCarousel - Signal Thread1 SIGABRT
S'il vous plaît aidez-moi! Voici le code que j'ai pour la ViewController
class ChangeRoomViewController: UIViewController, iCarouselDataSource,
iCarouselDelegate {
var hatsArray : NSMutableArray = NSMutableArray()
var shirtsArray : NSMutableArray = NSMutableArray()
@IBOutlet weak var carousel1: iCarousel!
@IBOutlet weak var carousel2: iCarousel!
override func viewDidLoad() {
super.viewDidLoad()
hatsArray = ["TopHat.jpeg", "WhiteBrimHat.jpeg", "StoutHat.jpg", "BaseballCapBlackw:Red.jpg", "WhiteBaseballCap.jpg"]
carousel1.type = iCarouselType.cylinder
carousel1.reloadData()
shirtsArray = ["StarWarsBlackFittedT.jpg", "CollaredFittedWhiteWithBeigeSplash.jpg", "CollaredWhiteWithZigzagLightBlueStripes.jpg", "ClooaredBlackWithWhiteStripes.jpg", "CollaredFittedNavyBlue.jpg"]
carousel2.type = iCarouselType.cylinder
carousel2.reloadData()
}
func carousel(_ carousel: iCarousel, viewForItemAt index: Int, reusing view: UIView?) -> UIView {
var hatsView : UIImageView!
var shirtsView : UIImageView!
if view == nil {
hatsView = UIImageView(frame: CGRect(x: 16, y: 65, width: 90, height: 60))
hatsView.contentMode = .scaleAspectFit
shirtsView = UIImageView(frame: CGRect(x: 16, y: 133, width: 90, height: 60))
shirtsView.contentMode = .scaleAspectFit
} else {
hatsView = view as! UIImageView
shirtsView = view as! UIImageView
}
hatsView.image = UIImage(named: "\(hatsArray.object(at: index))")
shirtsView.image = UIImage(named: "\(shirtsArray.object(at: index))")
if (carousel == carousel1) {
return hatsView
}else {
return shirtsView
}
}
func numberOfItems(in carousel: iCarousel) -> Int {
if (carousel == carousel1) {
return hatsArray.count
}else {
return shirtsArray.count
}
}
}
Merci beaucoup! Ça a marché! Étrange, bien qu'il réussisse à annuler l'exception ... Peut-être est-ce dû à un conflit avec "coursel1.reloadData()" –
En ce qui concerne votre dernière question ... Je pensais que je devais le faire de cette façon car les deux carrousels chargeront toujours les images en même temps. Il n'y aura jamais d'exemple où un seul carrousel est chargé. Pourriez-vous élaborer ou donner un exemple sur comment vous pensez que j'aurais dû m'y attaquer? –
La fonction sera appelée deux fois, une fois pour chaque carrousel avec le paramètre du carrousel réglé en conséquence. Si vous testez lequel au début de la fonction, il vous suffit de configurer l'imageView pour le carrousel particulier appelé. – Nick