0

我已成功設置了選項卡欄控制器。第一個視圖中的表視圖和第二個選項卡中的簡單UIView。 UIView有它自己的類。我已經爲後者添加了一個分段控件,最終我想要根據選定哪個段來更改表格視圖單元格中使用的圖像。如何使用UISegmentedControl來控制UITableView單元格?

單元格圖像是數組的一部分,並已使用自定義單元格進行設置。

我已經在UIView類中設置了分段控件,添加@property和@syntesize,但是我不能爲我的生活弄清楚如何從UIView類中更改單元格圖像。

在此先感謝!

我UIView.h段控制的定義,像這樣

@property(弱,非原子)IBOutlet中UISegmentedControl * selectedSegment

我還沒有包含一個IBAction爲因爲我不是100%它需要去哪裏或如何寫。

在我的表中查看我的手機圖片在的cellForRowAtIndexPath像這樣當前定義

cell.itemImageView.image = [UIImage imageNamed:[icons objectAtIndex:indexPath.row]]; 

我的想法是把一個switch語句中的細胞的方法內的每一種情況下指向不同的圖標設置成

switch (something) 
{ 
    case 0: 
    cell.itemImageView.image = [UIImage imageNamed:[iconSetOne objectAtIndex:indexPath.row]]; 
    break; 

    case 1: 
    cell.itemImageView.image = [UIImage imageNamed:[iconSetTwo objectAtIndex:indexPath.row]]; 
    break; 

    default 
    break; 
} 

但我敢肯定,這是做錯的方式,而「東西」位就是我所堅持的。

+1

你應該顯示你此刻已經嘗試/得到的東西。我會說添加一個屬性(一個bool或int)到TableView中,並在表建立時檢查它。 – Manuel

+0

發佈uiview類和自定義單元類的代碼 –

+0

添加代碼,讓我知道是否有什麼我錯過了,謝謝! – mattFllr

回答

1

1)在簡單UIView其中有您的分段控制:

  • 定義您連接到表格視圖
  • 的控制器的出口_tableViewController定義的操作方法segmentedControlChanged:響應該分割控制被觸發

2)在表視圖控制器:

  • 定義類型的屬性selectedSegmentIndexNSInteger

3)現在添加實施操作方法:

- (void) segmentedControlChanged:(id)sender 
{ 
    UISegmentedControl* segmentedControl = (UISegmentedControl*)sender; 
    _tableViewController.selectedSegmentIndex = segmentedControl.selectedSegmentIndex; 
    [_tableViewController.tableView reloadData]; 
} 

4)在表視圖控制器,你現在可以添加switch聲明你建議撥打tableView:cellForRowAtIndexPath:

switch (self.selectedSegmentIndex) 
{ 
    [...] 
} 

請注意,調用在步驟3中的是強制表格視圖更新所有單元格的正確圖像的原始方法。 UITableView中還有其他方法可以更好地控制要更新的單元格(例如reloadSections:withRowAnimation:)。

+0

非常好,不僅對我有答案,我也學到了一些東西。我現在使用reloadSections:withRowAnimation,非常酷。 – mattFllr

相關問題