gpt4 book ai didi

ios - 跨多个 View Controller 共享背景图像

转载 作者:搜寻专家 更新时间:2023-11-01 07:28:11 25 4
gpt4 key购买 nike

我正在使用 Xcode 在 Swift 中构建一个应用程序。我有一组 5 张图片,我想将其用作我所有 View Controller 的背景。

我有 10 多个 View Controller ,但我希望能够重用图像。

通常我会向我所有的 View Controller 添加一个 ImageView ,并设置图像。

我会使用公共(public)变量来更改显示的图像。但是在这个应用程序上,我有很多 View Controller ,创建每个 ImageView 的效率不是很高。

有什么方法可以更快吗?谢谢。

最佳答案

与子类化相比,使用 swift 实现此目的的更好方法是编写扩展并在所有 View Controller 中调用您的方法。

extension UIViewController{

func setCustomBackgroundImage(){

self.view.backgroundColor = UIColor(patternImage: UIImage(named:"yourImageFromXcAssets")!)

//or

let bgImage = UIImageView(image: UIImage(named: "yourImageFromXcAssets"))
self.view.addSubview(bgImage)
}
}

在你的 View Controller 中就像调用普通的 UIViewController 类方法一样调用它,

class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.setCustomBackgroundImage()
}

或者用 Objective-C 在 UIViewController 上写一个类别

#import <UIKit/UIKit.h>

@interface UIViewController (customBackground)

- (void)setCustomBackgroundImage;

@end

#import "UIViewController+customBackground.h"

@implementation UIViewController (customBackground)

- (void)setCustomBackgroundImage{
[self.view setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"yourImageFromXcAssets"]]];
//or
UIImageView *bgImage = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"yourImageFromXcAssets"]];
bgImage.frame = self.view.frame;
[self.view addSubview:bgImage];
}

@end

同样的方法也适用于 Objective C,

 [self setCustomBackgroundImage]; 

我正在使用 View Controller 扩展来管理我的应用程序中的所有样式、颜色和外观。

关于ios - 跨多个 View Controller 共享背景图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34487668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com