[英]How to set a static height and width for a UIImageView in xamarin iOS
所以我正在为 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;
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;
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;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.