2008-10-22 37 views
47

Ngắn đặt UIWebView làm lớp back-in nhất trong tệp nib của tôi, làm cách nào tôi có thể thêm hình nền lặp lại vào ứng dụng iPhone (như giao diện kẻ ô trong nền của UITableView được nhóm)?Lặp lại hình nền trong ứng dụng iPhone gốc

Tôi có cần tạo hình ảnh có kích thước màn hình của iPhone và lặp lại bằng cách sử dụng sao chép và dán không?

Trả lời

160

Dường như UIColor không nhất thiết phải là một màu duy nhất, nhưng cũng có thể là mẫu. Điều này không được hỗ trợ trong Trình tạo giao diện.

Thay vào đó, bạn đặt backgroundColor của chế độ xem (ví dụ: in -viewDidLoad) bằng phương thức tiện lợi + colorWithPatternImage: và chuyển cho nó hình ảnh giao diện người dùng. Ví dụ:

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    self.view.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed:@"gingham.png"]]; 
} 

Tất nhiên, đừng quên thêm tệp hình ảnh vào gói ứng dụng của bạn.

Ngoài ra còn có một số được xây dựng trong mô hình nền "màu sắc":

  • groupTableViewBackgroundColor
  • viewFlipsideBackgroundColor

Vì được sử dụng trên toàn thế giới trên tất cả các ứng dụng iPhone, bạn phải chịu hai lưỡi thanh kiếm của bản cập nhật hệ điều hành cập nhật giao diện của ứng dụng của bạn (mang lại cho nó một giao diện hoàn toàn mới có thể hoặc có thể không hoạt động đúng).

Ví dụ:

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    self.view.backgroundColor = [UIColor groupTableViewBackgroundColor]; 
} 
+1

Wow tôi đã không biết về việc này. Mẹo tuyệt vời! – Lounges

+0

Bạn vui lòng cung cấp đoạn mã về cách sử dụng groupTableViewBackgroundColor? Cảm ơn! –

+0

Điều đáng nói đến là colorWithPatternImage dường như không hỗ trợ PNG24 –

2

Bạn nên có một cái nhìn tại các mã ví dụ QuartzDemo iPhone từ Apple, đặc biệt QuartzImageDrawing.m. Nên sử dụng cuộc gọi phương thức sau.

CGContextDrawTiledImage 
1

Bạn nên sử dụng colorWithPatternImage

Các vấn đề liên quan