Xamarin.iOS.UILabel не отображается - PullRequest
0 голосов
/ 04 декабря 2018

Мой код:

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 голосов
/ 05 декабря 2018

Причина:

Кадр вида (CGRect) - это положение его прямоугольника в системе координат суперпредставления.По умолчанию он начинается слева вверху.

Если вы не укажете frame или layout представления, представление не будет отображаться в его 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

...