我正在开发一个在 UITableView 中显示会话的 iOS 应用程序。我目前正处于开发自定义 tableviewcell 来表示我的数据的阶段。
根据事件类型,我正在更改 tableviewcell 中小条的背景颜色(蓝色或橙色)。出于某种原因,颜色已关闭,并且 tableview 添加了另一个不应添加的单元格。见下图。
注意第一个单元格..它的类型:“ISKE”所以应该是橙色的,这是正确的。注意第二个单元格的类型:“ISKA”。现在右边的栏应该是蓝色的,显然不是。不过这很奇怪,因为日期的字体颜色是正确的颜色。还要注意显示的最后一个栏,而没有额外的单元格可用。
我不知道为什么会这样。我希望有人能指出我正确的方向。我的获取单元格方法如下:
public override UITableViewCell GetCell (UITableView tableView, MonoTouch.Foundation.NSIndexPath indexPath)
{
Session session = ObjectModel.Current.AllSessions.ElementAt (indexPath.Row);
SessionTableViewCell cell = tableView.DequeueReusableCell (session.SessionEvent.EventTitle) as SessionTableViewCell;
if (cell == null)
{
cell = new SessionTableViewCell ();
var views = NSBundle.MainBundle.LoadNib ("SessionTableViewCell", cell, null);
cell = Runtime.GetNSObject (views.ValueAt (0)) as SessionTableViewCell;
}
if (session.SessionEvent.EventTitle == "ISKE") {
cell.SessionEventColor = UIColor.FromRGB (255, 165, 0);
cell.SessionDateFontColor = UIColor.FromRGB (255, 165, 0);
} else {
cell.SessionEventColor = UIColor.FromRGB (80, 124, 191);
cell.SessionDateFontColor = UIColor.FromRGB (80, 124, 191);
}
cell.SessionDay = session.SessionDate.DayOfWeek.ToString ().ToUpper ();
cell.SessionTime = session.SessionDate.ToString ("HH:mm");
cell.SessionDate = session.SessionDate.Day.ToString ().ToUpper ();
cell.SessionSpeaker = "testspeaker";
cell.ImgBgView.Layer.BorderColor = UIColor.FromRGB (206, 206, 208).CGColor;
cell.ImgBgView.Layer.BorderWidth = 1.0f;
cell.SelectionStyle = UITableViewCellSelectionStyle.None;
cell.SessionTitle = session.SessionTitle;
cell.SessionEvent = session.SessionEvent.EventTitle;
cell.SessionRoom = session.SessionRoom;
return cell;
}