Xamarin.iOS
스토리 보드를 사용하여 xamarin.iOS에서 사용자 정의 프로토 타입 테이블 셀을 만들고 사용하십시오.
수색…
스토리 보드를 사용하여 맞춤 셀 만들기
테이블 뷰가있는 ViewController가있는 Storyboard를 엽니 다.
프로토 타입 셀 추가 (전에 셀이 추가되지 않은 경우) :
원하는대로 셀을 사용자 정의하십시오 (제 경우에는 사용자 정의 UIImage 및 Label이 있습니다).
셀의 높이를 설정하는 것을 잊지 마십시오. 그렇게하려면 전체 TableView를 선택하고 속성 창에서 "레이아웃"탭을 선택하십시오. 속성 창 상단에 "행 높이"가 표시되어야합니다. 적절한 값을 입력하십시오.
이제 프로토 타입 셀을 다시 한 번 선택하십시오. 속성 창에서 클래스의 이름을 입력합니다. 클래스의 코드 숨김 클래스가 만들어집니다. 내 경우에는 "FriendsCustomTableViewCell"입니다. 그 후에 당신의 세포를위한 "Identifier"를 제공하십시오. 당신이 볼 수 있듯이 "FriendCell"입니다. 마지막으로 설정할 스타일은 "스타일"속성이 사용자 정의로 설정되어 있습니다. '이름'입력란은 비워 두어야합니다. "Class"를 입력 한 후 "enter"를 클릭하면 코드 숨김 파일이 자동으로 생성됩니다.
이제 셀에 대한 코드는 다음과 같이 보입니다.
public partial class FriendsCustomTableViewCell : UITableViewCell
{
public FriendsCustomTableViewCell (IntPtr handle) : base (handle)
{
}
public FriendsCustomTableViewCell(NSString cellId, string friendName, UIImage friendPhoto) : base (UITableViewCellStyle.Default, cellId)
{
FriendNameLabel.Text = friendName;
FriendPhotoImageView.Image = friendPhoto;
}
//This methods is to update cell data when reuse:
public void UpdateCellData(string friendName, UIImage friendPhoto)
{
FriendNameLabel.Text = friendName;
FriendPhotoImageView.Image = friendPhoto;
}
}
UITableViewSource에서 클래스 상단에 cellIdentifier를 선언해야합니다 (내 경우에는 "FriendCell"임). "GetCell"메서드에서 셀을 캐스팅하고 이에 대한 데이터를 설정해야합니다.
string cellIdentifier = "FriendCell";
public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
{
FriendsCustomTableViewCell cell = (FriendsCustomTableViewCell) tableView.DequeueReusableCell(cellIdentifier);
Friend friend = _friends[indexPath.Row];
//---- if there are no cells to reuse, create a new one
if (cell == null)
{ cell = new FriendsCustomTableViewCell(new NSString(cellIdentifier), friend.FriendName, new UIImage(NSData.FromArray(friend.FriendPhoto))); }
cell.UpdateCellData(friend.UserName, new UIImage(NSData.FromArray(friend.FriendPhoto)));
return cell;
}
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow