Xamarin.iOS。未显示UILabel

时间:2018-12-04 10:15:18

标签: xamarin.ios uilabel

我的代码:

public class AdViewCell : UICollectionViewCell
{
    public void RecycleCell()
    {
         var _nativeAd = new NativeAdView();
         ContentView.AddSubview(_nativeAd.CreateNativeAd());
    }
}

public class NativeAdView
{
    public UIView CreateNativeAd()
    {
        var t1label = new UILabel();            
        t1label.Font = UIFont.SystemFontOfSize(25);
        t1label.Text = "Test";
        t1label.TextColor = UIColor.White;

        return t1label;
    }
}

它在RecycleCollectionView中使用。

未显示文本:

enter image description here

为什么不显示文本?请帮助我。

1 个答案:

答案 0 :(得分:1)

原因:

  

视图的框架(CGRect)是其矩形在   超级视图的坐标系。默认情况下,它从左上方开始。

如果您未指定视图的framelayout,则视图不会显示在其superview中。

解决方案:

对于您而言,需要在标签上添加Frame,以确保标签在RecycleCollectionView中的位置。

例如:

 public class NativeAdView
            {
                public UIView CreateNativeAd()
                {
                    var t1label = new UILabel();
                    t1label.Font = UIFont.SystemFontOfSize(25);
                    t1label.Text = "Test";
                    t1label.TextColor = UIColor.White;

                    t1label.BackgroundColor = UIColor.Blue;
                    // you can define your Frame here
                    t1label.Frame = new CoreGraphics.CGRect(50,60,100,50);

                    return t1label;
                }
            }

您还可以使用autolayout来布局视图。

引用:autoLayout