UITableView でセッションを表示する iOS アプリケーションを開発しています。私は現在、自分のデータを表すカスタム tableviewcell を開発している段階です。
イベントの種類に基づいて、tableviewcell の小さなバーの背景色 (青またはオレンジ) を変更しています。何らかの理由で、色付けがオフになり、テーブルビューが追加されるべきではない別のセルを追加します。下の画像を参照してください。
最初のセルに注目してください。タイプは「ISKE」なので、オレンジ色である必要があります。これは正しいです。タイプが「ISKA」の 2 番目のセルに注意してください。これで、右側のバーは青色になるはずですが、明らかにそうではありません。ただし、日付のフォントの色が正しい色であるため、奇妙です。また、最後のバーが表示されていることに注意してください。使用できる余分なセルはありません。
なぜこれが起こっているのかわかりません。誰かが私を正しい方向に向けてくれることを願っています。私の get cell メソッドは次のとおりです。
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;
}