program story

전체 iPhone / iPad 앱의 배경 이미지 설정

inputbox 2020. 12. 4. 08:11
반응형

전체 iPhone / iPad 앱의 배경 이미지 설정


어떤 viewcontroller에 있든 상관없이 내 앱의 배경으로 원하는 단일 이미지가 있습니다. 어떻게 수행합니까?


이미지에 배경을 설정하는 방법은 다음과 같습니다.

self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"Background.png"]];

편집 : Felixyz가 말한 내용을 작성하려면 (Manni 덕분에) 대리인에서 다음을 수행하십시오.

window.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"Background.png"]];

그리고 이미지를 갖고 싶은 각보기에서 다음을 수행하십시오.

self.view.backgroundColor = [UIColor clearColor];

가지고있는 인터페이스의 종류에 따라 다릅니다. 탭? 내비게이션 기반? 그러나 일반적인 대답은 다음과 같습니다. 기본보기 앞 / 아래에 UIWindow에 UIImageView를 추가합니다. 그런 다음 메인 뷰 컨트롤러가 처리하는 모든 뷰를 투명한 배경으로 만듭니다. IB를 사용하는지 여부 또는 뷰 계층 구조가 어떻게 생겼는지 모른 채 더 구체적인 조언을 제공하기 어렵습니다.


내 앱에서 기본 배경색을 설정했습니다. 배경 이미지로이 작업을 수행 할 수 있습니다.

1 .: AppDelegate에서 UIWindow의 배경색을 설정합니다.

window.backgroundColor = [UIColor myBackgroundGray]; // own Category

2 .: 이제 다른 모든 뷰를 투명하게 만드십시오.

self.view.backgroundColor = [UIColor clearColor]; // = transparent

AppDelegate에서

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

다음 줄을 추가하십시오.

[self.window setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]]];

뷰 배경을 다음과 같이 설정하면 [UIColor clearColor];


성능에 미치는 영향은 확실하지 않지만 비슷한 작업을 수행해야했고 잘 작동하는 UIImageView를 사용하게되었습니다 (C #에서는 작동하지만 obj-c에서는 동일하게 작동 함).

//Add the view controller first, to ensure proper order of views later.
Window.RootViewController = new UIViewController();

//create backdrop image view
var imageView = new UIImageView(Window.Bounds);
imageView.Image = UIImage.FromBundle("backdrop.jpg");

//insert into window.
Window.InsertSubview(imageView, 0);

이것은 방향 변경을 처리하지 않지만 제 경우에는 배경에 모션 효과 (예 : 시차)를 추가 할 수있었습니다.


배경은 모든 View 상속 개체의 속성입니다. 예를 들어 레이블, 버튼, 컨트롤러 및 앱 창에는 모두 배경이 있습니다. 전체 앱에 대해 완전히 bg가되도록하려면 컨트롤러에서 경로를 올라가 가장 "상단"(하단보기)보기를 찾고 배경을 원하는 이미지로 설정해야합니다.


그냥이 전화 assignbackgroundviewDidLoad

override func viewDidLoad() {
assignbackground()
}

func assignbackground(){
        let background = UIImage(named: "background")

        var imageview : UIImageView!
        imageview = UIImageView(frame: view.bounds)
        imageview.contentMode =  UIViewContentMode.ScaleAspectFill
        imageview.clipsToBounds = true
        imageview.image = background
        imageview.center = view.center
        view.addSubview(imageview)
        self.view.sendSubviewToBack(imageview)
    }

나는 일반적으로이 기능을 사용하여 아이폰의 내비게이션 바와 겹치지 않도록합니다.

-(void)setImageBackground:(NSString*)imageName{
    UINavigationController* navigationController = [self navigationController];
    float height = navigationController.toolbar.frame.size.height;
    CGSize size = self.view.frame.size;
    size.height = size.height;
    UIGraphicsBeginImageContext(size);
    CGRect bounds = self.view.bounds;
    bounds.origin.y = bounds.origin.y + height;
    bounds.size.height = bounds.size.height-height;
    [[UIImage imageNamed:imageName] drawInRect:bounds];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    self.view.backgroundColor = [UIColor colorWithPatternImage:image];
}

참고 URL : https://stackoverflow.com/questions/4915474/set-background-image-for-entire-iphone-ipad-app

반응형