【问题标题】:How to set a static height and width for a UIImageView in xamarin iOS如何在 xamarin iOS 中为 UIImageView 设置静态高度和宽度
【发布时间】:2021-01-04 08:27:10
【问题描述】:

所以我正在为 Picker 开发 CustomRenderer,我需要在选取器的右侧放置一个图像,我能够做到,但是图像尺寸太大,我该如何设置静态尺寸给它,

我试过这样做,但我不确定我是否在正确的轨道上

 Control.BorderStyle = UITextBorderStyle.None;
                var downarrow = UIImage.FromBundle(element.PickerImageSource);
                Control.RightViewMode = UITextFieldViewMode.Always;
                var imgView = new UIImageView(downarrow);
                imgView.Frame = new CoreGraphics.CGRect(0.1, 0.1, 0.1, 0.1);
                Control.RightView = imgView;

任何输入都会有所帮助

【问题讨论】:

  • 您是否尝试过更新您的 CGRect 参数?喜欢new CoreGraphics.CGRect(0.1, 0.1, 20, 20);
  • 没有改变@Dishant
  • @Venky 嗨,尝试将ContentMode 设置为UIImageView 以检查它是否有效。如:imgView.ContentMode = UIViewContentMode.ScaleAspectFit;
  • 帮助了@JuniorJiang-MSFT
  • @Venky 很高兴能帮上忙!如果是这样,您介意我将其更新为答案吗?

标签: ios xamarin.forms xamarin.ios uiimageview custom-renderer


【解决方案1】:

UIImageView有一个ContentMode属性

控制当视图的边界发生变化时,视图的缓存位图必须如何呈现。

ContentMode Enum,还有一个ScaleAspectFit可以让图片适合UIImageView的边框。

缩放内容以使所有内容都可见,同时保留纵横比。任何未填充的区域都将变为透明。

因此,您可以通过添加此属性来修改代码:

Control.BorderStyle = UITextBorderStyle.None;
var downarrow = UIImage.FromBundle(element.PickerImageSource);
Control.RightViewMode = UITextFieldViewMode.Always;
var imgView = new UIImageView(downarrow);
imgView.Frame = new CoreGraphics.CGRect(0.1, 0.1, 0.1, 0.1);

// modify here
imgView.ContentMode = UIViewContentMode.ScaleAspectFit;

Control.RightView = imgView;

【讨论】:

    【解决方案2】:

    UIViewContentMode.ScaleAspectFit 对我不起作用...但是,我想出了另一个解决方案:

    var template = new UIView();
    template.Frame = new CGRect(0, 0, 20, 20);
    
    var image = new UIImageView();
    image.Frame = new CGRect(0, 0, 20, 20);
    image.Image = UIImage.FromBundle("ic_caret_down");
    template.AddSubview(image);
    
    Control.RightViewMode = UITextFieldViewMode.Always;
    Control.RightView = template;
    

    【讨论】:

      猜你喜欢
      • 2020-08-29
      • 2015-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-09
      • 2015-04-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多