【问题标题】:Set background image in UIViewController (MonoTouch)在 UIViewController (MonoTouch) 中设置背景图像
【发布时间】:2011-11-15 00:37:35
【问题描述】:

我有一个名为 HomeScreen 的屏幕,它实现了 UIViewController。我希望为此屏幕使用背景图像。是否有可以覆盖的事件以在 HomeScreen.cs 文件中设置此背景图像?

【问题讨论】:

  • UIVIewController 没有 BackgroundView / Image 成员,你必须创建一个 UImageView 然后 addSubView Duplicate:stackoverflow.com/questions/2991040/…
  • 谢谢。但这不是重复,因为我的问题与 MonoTouch 相关。
  • 但是,如果您可以在 MonoTouch 中展示您的建议,我很乐意看到。听起来这是我最好的选择。谢谢!
  • 我想通了...在 ViewDidLoad put... this.View.AddSubview(new UIImageView(UIImage.FromFile(@"Images/Background-home@2x.png"))) ;
  • 不要使用 AddSubview 添加图像视图,而是使用 InsertSubview: this.View.InsertSubview(imageView, 0); - 这将添加图像视图并使其成为视图的第一个子视图(=在其他所有内容之后)。

标签: iphone uiviewcontroller xamarin.ios monodevelop


【解决方案1】:

尝试设置 View 的 BackgroundColor

myview.BackgroundColor = UIColor.FromPatternImage(UIImage.FromFile("myimage.png"));

【讨论】:

  • 有没有什么办法可以让图片缩放到视图大小并且仍然使用它作为背景色?
  • @nhenrique 我也想知道,你找到解决方案了吗?
  • @nhenrique 我为您的问题添加了new answer
  • @ElliotBlackburn 我添加了一个new answer 来解决不同尺寸的iPhone问题
  • @OldFox 哇,这太旧了,感谢更新。希望它会在未来对其他人有所帮助。我什至不再使用 Xamarin 了哈哈
【解决方案2】:

我对其他答案投了赞成票,但是今天 iPhone 有不同的尺寸,加载图像的正确方法是使用 UIImage.FromBundle 方法:

这是项目中的断言目录:

管理图像:

public override void ViewDidLoad()
{
    base.ViewDidLoad();

    // replace "name" with the desired name in the asset catalog
    this.View.BackgroundColor = UIColor.FromPatternImage(UIImage.FromBundle("name"));

}

【讨论】:

    【解决方案3】:

    尝试在 MyViewNameViewController.cs 中添加类似以下内容:

    public override void ViewDidLoad()
    {
        base.ViewDidLoad();
        this.View.BackgroundColor = UIColor.FromPatternImage(UIImage.FromFile("splash.png"));
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-11
      • 2010-11-07
      • 2012-08-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多