繁体   English   中英

如何在 xamarin iOS 中为 UIImageView 设置静态高度和宽度

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM