我有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);
}
答案 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);