无法在Xamarin C中将图像设置为UIButton#

时间:2014-07-29 05:52:32

标签: c# ios iphone uibutton xamarin

setImage无法UIButton

设置backgroundColor时使用Image显示图像我想设置它" backButton.png"

当setImage为UIButton时,它根本不显示

 backButton.SetImage (UIImage.FromFile ("/Images/backButton.png"), UIControlState.Normal);

我想将图片设置为UIButton

//下面是代码

UIButton backButton = UIButton.FromType(UIButtonType.Custom);
backButton.Frame = new RectangleF (5, 5, 45, 30);
backButton.BackgroundColor =  UIColor.FromPatternImage (UIImage.FromBundle ("/Images/backButton.png"));
backButton.SetImage (UIImage.FromFile ("/Images/backButton.png"), UIControlState.Normal);
backButton.TouchUpInside += (sender, ea) => {
    this.NavigationController.PopViewControllerAnimated(true);
};

4 个答案:

答案 0 :(得分:0)

我对Xamarin了解不多。但是xcode项目中呈现的目录结构与实际不同(在app编译之后) 所有文件和资源都驻留在名为main bundle的同一目录中。
要访问您的资源,您只需从主要包中请求它。您不必指定xcode项目导航器的目录(在哪个资源所在的位置)。

您可以阅读更多directory structure here

答案 1 :(得分:0)

这是因为从属性框中设置Visual Studio中的图像时,它会设置图像路径,如images \ image1.png [当image1.png文件位于\ Resources \ Images文件夹中时。

但MAC并不支持" \"路径,您需要提供" /"。

的路径

答案 2 :(得分:0)

我最近遇到过这个问题。我读到Apple最近强制执行一项更改,当您在Xamarin中创建项目时,所有资源必须位于Resources目录中。您可以在Resources目录中创建Image目录并在那里显示图像。

现在回读一下它就像 - 如果图像在Resources目录中,你可以使用

UIImage.FromFile ("backButton.png")

但是如果你的图像在Resources / Images中,那么只需使用

UIImage.FromFile ("Images/backButton.png")

注意在Images目录之前没有反斜杠,现在它位于Resources目录中。

这对我有用。对不起,我不记得告诉我有关目录中资源的更改和存储的链接,但这解决了我所有与资源相关的问题。

答案 3 :(得分:0)

在您发布的代码中:

backButton.BackgroundColor =  UIColor.FromPatternImage (UIImage.FromBundle("/Images/backButton.png"));
backButton.SetImage (UIImage.FromFile ("/Images/backButton.png"), UIControlState.Normal);

您在一行UIImage.FromFile和另一行UIImage.FromBundle中使用。如果我理解您更正了"FromBundle"版本,那么请尝试将此版本用于SetImage