我正在尝试创建一个带圆角的图像,并在图像周围添加5磅填充。我的角落工作,但图像,一个图标,占据了整个控制。我尝试过的一些事情是:
public override void LayoutSubviews()
{
try
{
var element = (IconTile)Element;
var textheight = element.HeightRequest / 3;
Control.Layer.CornerRadius = 10;
Control.Layer.BackgroundColor = HelperUtilities.GetColor(element.Item.BackgroundColor, Color.Transparent).ToCGColor();
Control.ClipsToBounds = true;
//Control.Image.Scale(new CGSize(element.WidthRequest - 10, element.HeightRequest - 10));
Control.Image = Control.Image.ImageWithAlignmentRectInsets(new UIEdgeInsets(5, 5, 5, 5));
Control.Frame = new CGRect(5, 5, element.Width - 10, element.Height - 10);
Control.LayoutMargins = new UIEdgeInsets(5,5,5,5);
Control.Image.DrawAsPatternInRect(new CGRect(5, 5, element.Width - 10, element.Height - 10));
//UIGraphics.BeginImageContextWithOptions(new CGSize(element.WidthRequest - 40, element.HeightRequest - 40), false, 0f);
base.LayoutSubviews();
在Android中,我可以使用
执行此操作 child.SetPadding(20,20,20,20);
var result = base.DrawChild(canvas, child, drawingTime);
我如何在iOS中执行此操作?
在iOS中我看起来应该可以通过在控件上设置Frame来实现这一点:
CGSize size = Control.Image.Size;
CGRect rect = new CGRect(0, 0, size.Width - 5, size.Height - 5);
Control.Frame = rect;
取自https://stackoverflow.com/a/6435536/1181230。但现在图像大小调整到帧。是 这是表格中的错误吗?
答案 0 :(得分:0)
我最终重写了TrySetImage并调用了我自己的SetImage,它使用框架创建了一个新的imageview。 我替换为:
res = df.iloc[:, s.index.map(df.columns.get_loc)]
具有:
var imageView = Control;
if (imageView != null)
imageView.Image = uiimage;