簡體   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