尾部截断在自定义Xamarin.iOS表格视图单元上不起作用

时间:2019-11-21 09:19:29

标签: ios xamarin xamarin.ios

在我的CustomTableViewCell类中,我像这样设置LineBreakMode:

protected override void CreateView()
{
    base.CreateView();

    SelectionStyle = UITableViewCellSelectionStyle.None;

    myLabel = new UILabel
    {
        Font = UIFont.SystemFontOfSize(17f, UIFontWeight.Regular),
        LineBreakMode = UILineBreakMode.TailTruncation
    };

    myImageView = new UIImageView(new UIImage("myImage.png"));

    BackgroundColor = UIColor.Clear;

    ContentView.AddSubviews(myImageView, myLabel);
    ContentView.SubviewsDoNotTranslateAutoresizingMaskIntoConstraints();
}

我希望看到“ Lorem ipsum dolor坐在amet c ...”。 但这似乎不起作用,结果如下:

enter image description here

更新:当我尝试像这样设置标签的宽度时:

myLabel = new UILabel
{
    Font = UIFont.SystemFontOfSize(17f, UIFontWeight.Regular),
    LineBreakMode = UILineBreakMode.TailTruncation,
    Frame.Size.Width = 100.0
};

我收到错误消息:

  

无法修改'CGRect.Size'的返回值,因为它不是变量

     

无效的初始值设定项成员声明符

任何想法,如何解决?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。我使用Cirrious.FluentLayout创建布局,但忘记在覆盖的 CreateConstraints()方法中设置 myLabel.AtRightOf()。 使用它,它可以正常工作:

protected override void CreateConstraints()
{
    base.CreateConstraints();
    ContentView.AddConstraints(
      ...
      myLabel.AtRightOf(ContentView, 10),
      ...
    );   
}