2010-08-13 39 views
13

Làm cách nào để đặt hình nền của UIViewController? Mã để làm điều đó là gì? Ngay bây giờ tôi cóNền UIViewController Hình ảnh

self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"image.jpg"]]; 

nhưng tôi không muốn mẫu. Tôi muốn nó lấp đầy màn hình đúng cách.

Trả lời

34

bạn có thể sử dụng:

UIImageView *backgroundImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Blah.png"]]; 

[self.view addSubview:backgroundImage]; 
[self.view sendSubviewToBack:backgroundImage]; 
[backgroundImage release]; 

Apple HD image Guide

+1

iPhone 4 là 960-by-640-pixel tại 326 ppi theo trang web của Apple. Khi tôi tạo một hình ảnh lớn như vậy, nó quá lớn so với nền khi tôi thử đặt nó trên điện thoại của tôi bằng cách sử dụng mã đó. Làm thế nào để làm cho nó phù hợp? Tôi đang cố tạo một nền có độ phân giải cao cho một trong các ứng dụng của mình. – CodeGuy

+0

ahh. Tôi sẽ cố gắng đọc lên trên điểm để chuyển đổi pixel (có một hướng dẫn này ở đâu đó). Cá nhân tôi không chắc chắn nó hoạt động như thế nào, nhưng bạn sẽ phải điều chỉnh khung UIImageViews có lẽ? Cá nhân tôi chưa bao giờ sử dụng độ phân giải HD cho iPhone4. –

+0

Bạn muốn chuyển đổi "điểm thành pixel" nghĩa là gì? Bạn có phiền giúp tôi tìm một số hướng dẫn về điều này không? – CodeGuy

1

Mở rộng trên mã Jesse Naugher của: UIView (hoặc UIViewController, cho rằng vấn đề), tổ chức không có built-in cách sử dụng một hình ảnh cho nền. Những gì bạn phải làm là sử dụng UIImageView, một lớp con UIView đặc biệt để hiển thị hình ảnh và thêm nó vào mặt sau của hệ thống phân cấp khung nhìn của bạn.

+0

Cảm ơn bạn. Tôi hiểu. Bạn có bất kỳ sự khôn ngoan nào về vấn đề tôi đăng tải dưới dạng bình luận về mã của Jesse Naugher không? – CodeGuy

5

self.view.layer.contents = (id) [Hình ảnh đại diệnNamNam: @ "background.png"]. CGImage;

Lý do: mỗi chế độ xem được hỗ trợ bởi lớp CALayer. Theo tài liệu về CALayer:

 
contents 
An object that provides the contents of the layer. Animatable. 


@property(retain) id contents 
 
Discussion 
A layer can set this property to a CGImageRef to display the image as its contents. The default value is nil. 

Và có, thuộc tính này có thể hoạt hình. Điều này có nghĩa là các chuyển đổi đẹp dựa trên CoreAnimation có thể được thực hiện trên lớp này. Lưu ý: hãy cẩn thận nếu bạn hỗ trợ nhiều hướng.

+1

Cảm ơn bạn đã đăng bài này, chính xác những gì tôi đang tìm kiếm. – Bradford2000

2

Một giải pháp nhanh chóng cho điều này ...

let backgroundImageView = UIImageView(image: UIImage(named: "backgroundImage")) 
backgroundImageView.frame = view.frame 
backgroundImageView.contentMode = .ScaleAspectFill 
view.addSubview(backgroundImageView) 
view.sendSubviewToBack(backgroundImageView) 
1

Giải pháp cho Swift 3,0

self.view.backgroundColor = UIColor(patternImage: UIImage(named: "home02.png")!) 
Các vấn đề liên quan