Table View 사용 방법
TableView
TableView Source
TableView에 세트하기 위한 DataSource용의 클래스를 신규 작성한다.
UITableViewSource
클래스의 상속 RowsInSection
메서드를 재정의하고 표시 할 항목 수를 반환합니다.GetCell
메서드를 재정의하고 각 셀의 표시 방법을 설정합니다.RowSelected
메서드를 재정의하고 항목이 선택되었을 때의 동작을 설명합니다.TableSource.cs
/// <summary>
/// Table Source Class
/// </summary>
public class TableSource : UITableViewSource
{
/// <summary>
/// Table Item
/// </summary>
private string[] TableItems;
/// <summary>
/// Cell Identifier
/// </summary>
private const string CellIdentifier = "TableCell";
/// <summary>
/// Constructor
/// </summary>
/// <param name="items">Items</param>
public TableSource(string[] items)
{
/* Set Table Items */
this.TableItems = items;
}
/// <summary>
/// Get Row Count In Section
/// </summary>
/// <returns>In Section</returns>
/// <param name="tableview">Table View</param>
/// <param name="section">Section</param>
public override nint RowsInSection(UITableView tableview, nint section)
{
return TableItems.Length;
}
/// <summary>
/// Get Table View Cell
/// </summary>
/// <returns>Table View Cell</returns>
/// <param name="tableView">Table View</param>
/// <param name="indexPath">Index Path</param>
public override UITableViewCell GetCell(UITableView tableView, Foundation.NSIndexPath indexPath)
{
/* Get Table View Cell(Default : Create new Talbe View Cell) */
var cell = tableView.DequeueReusableCell(CellIdentifier) ?? new UITableViewCell(UITableViewCellStyle.Value1, CellIdentifier);
/* Show Disclosure Indicator of Cell */
cell.Accessory = UITableViewCellAccessory.DisclosureIndicator;
/* Set Cell label */
cell.TextLabel.Text = this.TableItems[indexPath.Row];
/* Get Label Length */
var len = this.TableItems[indexPath.Row].Length;
/* Set Cell Detail Label */
cell.DetailTextLabel.Text = string.Format("{0} items", len);
/* Set Cell Image */
cell.ImageView.Image = UIImage.FromFile("Icons/Folder256.png");
return cell;
}
/// <summary>
/// Row Selected Event Handler
/// </summary>
/// <param name="tableView">Table View</param>
/// <param name="indexPath">Index Path</param>
public override void RowSelected(UITableView tableView, NSIndexPath indexPath)
{
/* Create Alert View */
var alert = new UIAlertView("Row Selected", this.TableItems[indexPath.Row], null, "OK", null);
/* Show Alert View */
alert.Show();
/* Deselect Row */
tableView.DeselectRow(indexPath, true);
}
}
TableView Controller
TableView에 설정하는 Data Source를 초기화합니다.
1.
ViewDidLoad
메서드를 재정의합니다.2.
TableSource
클래스의 인스턴스 생성3.
TableView
의 Source
속성에 TableSource
인스턴스 설정TableViewController.cs
/// <summary>
/// Table View Controller
/// </summary>
partial class TableViewController : UITableViewController
{
/// <summary>
/// Constructor
/// </summary>
/// <param name="handle">Handle</param>
public TableViewController(IntPtr handle) : base(handle)
{
/* Nothing to do */
}
/// <summary>
/// View Did Load Event Handler
/// </summary>
public override void ViewDidLoad()
{
/* Base Method */
base.ViewDidLoad();
/* Create Table View Items */
var items = new string[] { "Vegetables", "Fruits", "Flower Buds", "Legumes", "Bulbs", "Tubers" };
/* Create Table View Source */
var source = new TableSource(items);
/* Set Table View Source */
this.Categories.Source = source;
}
}
실행 화면
Reference
이 문제에 관하여(Table View 사용 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/an-embedded-engineer/items/a01305643a80baff3c7f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)