色综合天天_bl高肉强受失禁尿出来v文_日处女视频_在线观看国产剧情麻豆精品

十三年專注于網站建設與互聯網應用開發,低調、有情懷的網絡應用服務商!
南昌百恒科技微信公眾號 掃一掃關注
tel-icon全國服務熱線:400-680-9298,0791-88117053
掃一掃關注百恒科技微信公眾號

在視圖控制器ViewController中如何實現數據源協議與委托協議?

百恒 2017-11-16 15:36:05 3190
? ? ? ?集合視圖的委托協議是UICollectionViewDelegate,數據源協議是UICollectionViewDataSource。?
? ? ? ?UICollectionViewDataSource中的方法有如下4個。
? ? ? ?collectionView:numberOfItemsInSection:。提供某個節中的列數目。
? ? ? ?numberOfSectionsInCollectionView:。提供視圖中節的個數。
? ? ? ?collectionView:cellForItemAtIndexPath:。為某個單元格提供顯示數據。
? ? ? ?collectionView:viewForSupplementaryElementOfKind:atIndexPath:。為補充視圖提供顯示數據。?


? ? ? ?下面南昌APP開發公司-百恒網絡就來為大家介紹一下在視圖控制器ViewController中實現數據源協議UICollectionViewDataSource和委托協議UICollectionViewDelegate的方法。

? ? ? ?在視圖控制器ViewController中實現數據源協議UICollectionViewDataSource的代碼如下:?
? ? ? ?override func numberOfSectionsInCollectionView(collectionView: ? ? UICollectionView) -> Int { ? ??
? ? ? ?return self.events.count / 2?
? ? ? ?} ?

? ? ? ?override func collectionView(collectionView: UICollectionView, ? ? numberOfItemsInSection section: Int) -> Int { ? ??
? ? ? ?return 2?
? ? ? ?} ?

? ? ? ?override func collectionView(collectionView: UICollectionView,cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { ? ?
? ? ? ?var cell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell",forIndexPath: indexPath) as Cell?

? ? ? ?let event = self.events[indexPath.section*2 + indexPath.row] as NSDictionary ? ?cell.label.text = event["name"] as? String ? ??
? ? ? ?let imageFile = event["image"] as String ? ??
? ? ? ?cell.imageView.image = UIImage(named: imageFile) ? ??
? ? ? ?return cell?
? ? ? ?}?

? ? ? ?- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView ? ? *)collectionView?
? ? ? ?{ ? ??
? ? ? ?return [self.events count] / 2;?
? ? ? ?}?
? ? ? ?- (NSInteger)collectionView:(UICollectionView *)collectionView ? ? ?numberOfItemsInSection:(NSInteger)section?
? ? ? ?{ ? ??
? ? ? ?return 2;?
? ? ? ?}?
? ? ? ?- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView ? ? cellForItemAtIndexPath:(NSIndexPath *)indexPath?
? ? ? ?{ ? ??
? ? ? ?Cell *cell = [collectionView ? ? ? ??
? ? ? ?dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];

? ? ? ?NSDictionary *event = [self.events objectAtIndex:(indexPath.section*2 + indexPath.row)]; ? ??
? ? ? ?cell.label.text = [event objectForKey:@"name"]; ? ??
? ? ? ?cell.imageView.image = [UIImage imageNamed:[event objectForKey:@"image"]]; ? ?return cell;?
? ? ? ?}?

? ? ? ?UICollectionViewDelegate中的方法很多,這里我們選擇幾個較為重要的加以介紹。?

? ? ? ?collectionView:didSelectItemAtIndexPath:。選擇單元格之后觸發。?

? ? ? ?collectionView:didDeselectItemAtIndexPath:。不選擇單元格之后觸發。?


? ? ? ?在視圖控制器ViewController中實現委托協議UICollectionViewDelegate的代碼如下:?
? ? ? ?override func collectionView(collectionView: UICollectionView, ? ? ?didSelectItemAtIndexPath indexPath: NSIndexPath) { ? ??
? ? ? ?let event = self.events[indexPath.section*2 + indexPath.row] as NSDictionary ? ?NSLog("select event name : %@", event["name"] as String)?
? ? ? ?}

? ? ? ?- (void)collectionView:(UICollectionView *)collectionView ? ? ?

? ? ? ?didSelectItemAtIndexPath:(NSIndexPath *)indexPath?

? ? ? { ? ??
? ? ? ?NSDictionary *event = [self.events objectAtIndex:(indexPath.section*2 + indexPath.row)]; ? ??
? ? ? ?NSLog(@"select event name : %@", [event objectForKey:@"name"]); ?
? ? ? ?}?

? ? ? ?運行上述代碼,得到的輸出結果如下:?
? ? ? ?select event name : basketball?
? ? ? ?select event name : athletics?
? ? ? ?select event name : archery

? ? ? ?關于在視圖控制器ViewController中實現數據源協議與委托協議的方法就先介紹到這里,如果還有哪些地方不太懂的,歡迎來電和我們聯系。此外,百恒網絡專業為您提供南昌APP開發,小程序開發,網站建設等服務,如有需要,歡迎大家來電咨詢,洽談合作!
400-680-9298,0791-88117053
掃一掃關注百恒網絡微信公眾號

歡迎您的光顧,我們將竭誠為您服務×

售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售后服務 售后服務
 
備案專線 備案專線
 
售后服務 售后服務
 
×