gpt4 book ai didi

ios - Xamarin Monotouch CustomCell 为空白

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:46:24 24 4
gpt4 key购买 nike

我有以下 CustomCell:

using System;
using System.Drawing;
using MonoTouch.Foundation;
using MonoTouch.UIKit;

namespace Zurfers.Mobile.iOS
{
public class CustomCell : UITableViewCell
{
UILabel headingLabel, subheadingLabel, priceLabel;
UIImageView imageService;
UIImageView star, star2, star3, star4, star5;
public CustomCell (NSString cellId) : base (UITableViewCellStyle.Default, cellId)
{
imageService = new UIImageView();
star = new UIImageView();
star2 = new UIImageView();
star3 = new UIImageView();
star4 = new UIImageView();
star5 = new UIImageView();
headingLabel = new UILabel(){
Font = UIFont.FromName("Cochin-BoldItalic", 22f),
TextColor = UIColor.FromRGB (127, 51, 0),
};
subheadingLabel = new UILabel(){
Font = UIFont.FromName("Cochin-BoldItalic", 22f),
TextColor = UIColor.FromRGB (127, 51, 0),
};
priceLabel = new UILabel(){
Font = UIFont.FromName("Cochin-BoldItalic", 22f),
TextColor = UIColor.FromRGB (127, 51, 0),
};
}

public void UpdateCell (string title, string subtitle, string price, UIImage image)
{
imageService.Image = image;
headingLabel.Text = title;
subheadingLabel.Text = subtitle;
priceLabel.Text = price;
}

public override void LayoutSubviews ()
{
base.LayoutSubviews ();
imageService.Frame = new RectangleF(63, 5, 33, 33);
headingLabel.Frame = new RectangleF(5, 4, 63, 25);
subheadingLabel.Frame = new RectangleF(100, 18, 100, 20);
priceLabel.Frame = new RectangleF(250, 18, 100, 20);
}
}
}

这是我的 TableSource:

using System;
using MonoTouch.Foundation;
using MonoTouch.UIKit;

namespace Zurfers.Mobile.iOS
{
public class HotelTableSource : UITableViewSource
{

string[] tableItems;
NSString cellIdentifier = new NSString("TableCell");

public HotelTableSource (string[] items)
{
tableItems = items;
}
public override int RowsInSection (UITableView tableview, int section)
{
return tableItems.Length;
}

public override void RowSelected (UITableView tableView, NSIndexPath indexPath)
{
new UIAlertView("Row Selected", tableItems[indexPath.Row], null, "OK", null).Show();
tableView.DeselectRow (indexPath, true); // normal iOS behaviour is to remove the blue highlight
}

public override UITableViewCell GetCell (UITableView tableView, MonoTouch.Foundation.NSIndexPath indexPath)
{

CustomCell cell = tableView.DequeueReusableCell(cellIdentifier) as CustomCell;
if (cell == null)
cell = new CustomCell(cellIdentifier);
cell.UpdateCell(tableItems[indexPath.Row], tableItems[indexPath.Row], tableItems[indexPath.Row],
UIImage.FromFile (tableItems[indexPath.Row]) );
return cell;


}
}
}

但是当我运行应用程序时,TableView 是空的。在我创建 TableView 之前,每个 CustomCell 都有一个值。

我做错了什么?

预先感谢您的帮助。

最佳答案

Cell 不仅应该包含控件,它们还应该放在它上面(或者放在它的 ContentView 上)。为添加到自定义单元格的任何控件调用 AddSubview:

ImageService = new UIImageView();
AddSubview(ImageService);

如果没有帮助,请尝试使用 UITableViewCell 的默认控件(TextLabelDetailTextLabelImageView) 来显示一些数据。如果数据出现,则说明您的自定义 UITableViewCell 中仍然存在问题(错误的框架,空文本),否则,问题出在 UITableViewSource(空数据)中。

关于ios - Xamarin Monotouch CustomCell 为空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17457598/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com