Comment charger une vue iCarousel à partir du storyboard ou du xib?

J'utilise une vue iCarousel contrôle iCarousel pour montrer la vue avec une belle animation.

Tout fonctionne bien et je suis assez conscient de ce contrôle.

Mais jusqu'à maintenant, j'utilise manuellement le code pour append la vue dans la vue iCarousel et la montrer à l'écran mais maintenant, selon ma nouvelle exigence, j'ai 3 à 4 nouveaux thèmes dont j'ai besoin pour voir la vue iCarousel ci-dessous est ma question liée à cette vue .

  1. Comment puis-je charger différentes vues de XIB ?

  2. Comment puis-je charger la vue de Storyboard vue iCarousel ?

Actuellement, j'utilise la méthode ci-dessous pour append la vue manuellement.

 viewForItemAtIndex:(NSInteger)index resuingView:(UIView*) view 

Aidez-moi s'il vous plaît à réaliser ceci par Storyboard/ XIB .

Créer un iCarousel avec un type de roue inversée en utilisant une vue personnalisée de la plume

  @IBOutlet weak var viewCarousel: iCarousel! override func viewDidLoad() { super.viewDidLoad() viewCarousel.type = .invertedWheel viewCarousel.isVertical = true viewCarousel.delegate = self viewCarousel.dataSource = self } 

iCarousel DataSource

 func numberOfItems(in carousel: iCarousel) -> Int { return 25 } func carousel(_ carousel: iCarousel, viewForItemAt index: Int, reusing view: UIView?) -> UIView { // use a custom view from nib let view = Bundle.main.loadNibNamed("CarouselReuseView", owner: self, options: nil)![0] as! CarouselReuseView view.frame.size = CGSize(width: self.view.frame.size.width/2, height: 83.0) view.backgroundColor = UIColor.lightGray let friend = friendList[index] as friend view.lblName.text = friend.fullName let url = friend.photo let task = URLSession.shared.dataTask(with: URL(ssortingng: url)!, completionHandler: {data, response, error in if error == nil { DispatchQueue.main.async { view.imageView.image = UIImage(data: data!) view.imageView.layer.cornerRadius = view.imageView.frame.size.width/2 view.imageView.layer.masksToBounds = true } } }) task.resume() return view } } 

Objectiv C

 @property (weak, nonatomic) IBOutlet iCarousel *carouselView; - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. _carouselView.type = iCarouselTypeInvertedWheel; _carouselView.vertical = true; _carouselView.delegate = self; _carouselView.dataSource = self; _carouselView.layer.masksToBounds = true; } 

iCarousel DataSource

 -(NSInteger)numberOfItemsInCarousel:(iCarousel *)carousel { return 10; } -(UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSInteger)index reusingView:(UIView *)view { CustomView* myViewObject = [[[NSBundle mainBundle] loadNibNamed:@"customView" owner:self options:nil] objectAtIndex:0]; myViewObject.lbl.text = [NSSsortingng ssortingngWithFormat:@"%ld",(long)index]; return myViewObject; } 

ici CustomView est ma sous-class de UIView et "customView" est le nom UIView Xib j'espère que cela vous aidera

Plus d'infos: – https://github.com/nicklockwood/iCarousel

Essaye ça :

 -(UIView *) carousel:(iCarousel *)carousel viewForItemAtIndex:(NSInteger)index reusingView:(UIView *)view{ UIView *globleView = (UIView *)view; if (!globleView) { globleView = [[[NSBundle mainBundle] loadNibNamed:@"yourView" owner:self options:nil] objectAtIndex:0];; globleView.backgroundColor = [UIColor clearColor]; UIImageView *imageView = [[UIImageView alloc]initWithFrame:globleView.frame]; imageView.tag = 100; [globleView addSubview:imageView]; UILabel *lblFeatureRecipeName = [[UILabel alloc]initWithFrame:CGRectMake(15, ViewHeight(globleView) -50, ViewWidth(globleView)-40, 50)]; lblFeatureRecipeName.tag = 101; [globleView addSubview:lblFeatureRecipeName]; if (index == 0) { [self refreshCarousleViewWithView:globleView withIndex:index]; } } return globleView; }