UICollectionView SelectedBackgroundView宽度?

时间:2018-02-25 01:16:14

标签: ios xamarin uicollectionview

我有uicollectionview,每个单元格都有一个SelectedBackgroundView属性,背景颜色如下:

        SelectedBackgroundView = new UIView { BackgroundColor = UIColor.Green };

如何设置selectedbackgroundview的宽度?我需要它是默认值的一半。

我试过了:

        SelectedBackgroundView.Frame = new CGRect(SelectedBackgroundView.Frame.X, SelectedBackgroundView.Frame.Y, SelectedBackgroundView.Frame.Width / 2, SelectedBackgroundView.Frame.Height / 2);

但这只会扭曲观点

这是我放置代码的地方:

    [Export ("initWithFrame:")]
    public PhotoCell(CGRect frame) : base(frame)
    {
        //BackgroundView = new UIView { BackgroundColor = UIColor.Clear  };
        SelectedBackgroundView = new UIView { BackgroundColor = UIColor.Green };
        this.AddConstraint(NSLayoutConstraint.Create(this.SelectedBackgroundView, NSLayoutAttribute.Height, NSLayoutRelation.Equal, null, NSLayoutAttribute.NoAttribute, 1, this.Bounds.Height / 2));
        imageView = new UIImageView(frame); // set as you want
        ContentView.AddSubview(imageView);
    }

2 个答案:

答案 0 :(得分:0)

为什么不添加约束?

您可以将宽度和高度约束指定为NSLayoutConstraints,然后使用UICollectionViewCell方法将其添加到AddConstraint。以下是F#中的示例:

 myCell.AddConstraint(NSLayoutConstraint.Create(SelectedBackgroundView, NSLayoutAttribute.Height, NSLayoutRelation.Equal,null,NSLayoutAttribute.NoAttribute, 1, myHeightValue))

如果在C#

中不相同,那将非常相似

答案 1 :(得分:0)

这段代码解决了我的问题:

        SelectedBackgroundView.Frame = new CGRect(SelectedBackgroundView.Frame.X + 5, SelectedBackgroundView.Frame.Y + 5, SelectedBackgroundView.Frame.Width-10, SelectedBackgroundView.Frame.Height-10);