Program Tip

UITableView 배경 이미지

programtip 2020. 12. 2. 21:45
반응형

UITableView 배경 이미지


내 tableview의 배경으로 png 이미지를 설정하려고합니다. 다음 코드로 모두 괜찮습니다! 그러나 iPhone Simulator에서만. iPhone 장치에서 응용 프로그램을 실행하려고하면 tableview의 배경이 흰색 (또는 투명)으로 유지됩니다. 내가 배경색을 설정하려는 방식에 대해 뭔가를하십니까? 나는 다음까지 여러 가지 방법을 시도했지만 모두 같은 문제가 있습니다.

self.tableView.backgroundColor = [UIColor clearColor];
self.tableView.opaque = NO;
self.tableView.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"TableViewBackground.png"]];

미리 감사드립니다!


다음 코드를 사용하십시오.

UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"TableViewBackground.png"]];
[tempImageView setFrame:self.tableView.frame]; 

self.tableView.backgroundView = tempImageView;
[tempImageView release];

감사,


이 접근법이 더 깔끔하다고 생각합니다.

UIColor *background = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"TableBackground.jpg"]];
self.tableView.backgroundColor = background;
[background release];

간단하고 빠른 버전은

let tempImageView = UIImageView(image: UIImage(named: "yourImage"))
tempImageView.frame = self.tableView.frame
self.tableView.backgroundView = tempImageView;

이미지가 실제로 이름이 지정 TableViewBackground.PNG되었습니까 (대문자에 유의)? iOS 장치에서는 대소 문자가 정확히 일치해야하지만 시뮬레이터에서는 정확히 일치 할 필요가 없습니다.


 UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"TableViewBackground.png"]];
[tempImageView setFrame:self.tableView.frame]; 

self.tableView.backgroundView = tempImageView;
 [tempImageView release];

이것은 완벽하게 작동합니다. Jona의 Ravin에게 감사드립니다.


인터페이스 빌더에서 이미지를 첨부 할 수있는 IBDesignable tableview 하위 클래스

import UIKit

@IBDesignable
class DesignableTableView: UITableView {

    @IBInspectable var backgroundImage: UIImage? {
        didSet {
            if let image = backgroundImage {
                let backgroundImage = UIImageView(image: image)
                backgroundImage.contentMode = UIViewContentMode.ScaleToFill 
                backgroundImage.clipsToBounds = false
                self.backgroundView = backgroundImage
            }
        }
    }

}

[TableView setBackgroundView:nil];
[TableView setBackgroundView:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"apple.png"]] ];

배경에 패턴 이미지를 사용하려는 경우에도 완벽하게 작동합니다.

UIImage *image = [UIImage imageNamed:@"something.png"];
self.tableView.backgroundView = nil;
self.view.backgroundColor = [UIColor colorWithPatternImage:image];

조금 늦었지만 해결책을 찾는 다른 모든 사람들에게 아마도. viewDidLoad방법 에서 다음 코드를 사용하여 해당 작업을 얻을 수 있습니다 UITableViewController.

self.parentViewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]];
self.tableView.backgroundColor = [UIColor clearColor];

또는 배경색 만 사용하여 :

self.parentViewController.view.backgroundColor = [UIColor scrollViewTexturedBackgroundColor];
self.tableView.backgroundColor = [UIColor clearColor];

그것을 알아내는 데 시간이 좀 걸렸지 만 이제는 매력처럼 작동합니다.


Objective-c 버전 :

cell.backgroundColor = [UIColor clearColor];

또한 이것을보십시오 : 투명한 배경으로 UITableViewCell을 만드는 방법


UIImageView *imageviewTemp = [[UIImageView alloc] init];
[(UIImageView *)imageviewTemp sd_setImageWithURL:[NSURL URLWithString:self.stringOfPassedImage]];
[imageviewTemp setFrame:self.tableView.frame];
self.tableView.backgroundView = imageviewTemp;

참고 URL : https://stackoverflow.com/questions/5825397/uitableview-background-image

반응형