无法将自定义XIB插座与UICollectionViewCell一起使用

时间:2013-03-03 20:15:23

标签: xamarin.ios custom-controls xib uicollectionviewcell

从我的CustomClass:UICollectionViewCell访问出口时,它们显示为未初始化且无法设置正确的值。

我见过的每个例子都使用普通的Class(没有XIB)来设置UI。

[Register("CustomCommentCell")]
public partial class CustomCommentCell : UICollectionViewCell
{
    public static readonly NSString Identifier = new NSString("CustomCommentCell");

    public CustomCommentCell () : base()
    {
    }

    public CustomCommentCell (IntPtr handle) : base (handle)
    {
    }

    public void updateData()
    {
        this.lblComment.Text = "Test";
    }
}

另一方面,我已经注册了班级: this.tableComments.RegisterClassForCell(typeof(CustomCommentCell),commentCellId);

并正确设置GetCell。 但是,在尝试将出口设置为特定值时,它表示它为空。 (this.lblcomment = null)虽然它应该是UILabel初始化。

任何线索?

2 个答案:

答案 0 :(得分:2)

使用XIB创建Custom CollectionViewCell。执行以下操作

1)创建继承自UIcollectionViewCell的C#类

[Register("MyCustomCell")]
public class MyCustomCell : UICollectionViewCell
{

    public static readonly NSString Key = new NSString ("MyCustomCell");

    [Export ("initWithFrame:")]
    public MyCustomCell(CoreGraphics.CGRect frame) : base (frame)
    {



    }

    public override UIView ContentView {
        get {
            var arr=    NSBundle.MainBundle.LoadNib ("MyCustomCell", this, null);
            UIView view =arr.GetItem<UIView> (0);
            view.Frame = base.ContentView.Frame;
            base.ContentView.AddSubview (view);
            return base.ContentView;
        }
    }

} 

2)添加IphoneView XIB文件,其名称与步骤1中创建的Class相同

3)在XCODE中打开XIB并执行以下更改

enter image description here

3.1)选择FileOwner,将Class命名为Step 1 enter image description here    3.2)选择视图设置类名称UIView

4)相应地设计您的XIB

答案 1 :(得分:0)

我无法理解你所看到的问题。什么是“Custom XIB outlet”?为什么这个问题被标记为“自定义控件”?是否有一些示例代码或图片可以显示以帮助解释问题?


我用于UICollectionViewCell的方法与我用于UITableViewCell的方法相同 - 请参阅教程 - http://slodge.blogspot.co.uk/2013/01/uitableviewcell-using-xib-editor.html


更新:从您发布的评论代码(不确定它是否完整),我认为按照该教程进行操作会很有用。有几个步骤需要完成,包括注册自定义类名,包括使用RegisterNibForCellReuse - 其中一个可能会为您解决此问题。