2012-01-04 38 views
6

Tôi có tệp XIB với các phần tử UIControlUIScrollView bên trong nó. Tôi muốn thêm hình nền vào chế độ xem. Tôi đã thử thêm một ImageView trong IB nhưng tôi không thể làm cho nó có mặt như là một nền tảng và nó che khuất các yếu tố kiểm soát. Gửi tin nhắn sendViewBack dường như không làm bất cứ điều gì.Đặt hình nền theo lập trình trong A Xib

Khi tôi tạo UIImageView theo chương trình, nó sẽ không hiển thị.

Dưới đây là đoạn code tôi đã cố gắng:

theo chương trình Sáng tạo

UIImage *imageBackground = [UIImage imageWithContentsOfFile:@"globalbackground"]; 

UIImageView *backgroundView = [[UIImageView alloc] initWithImage:imageBackground]; 

[[self view] addSubview:backgroundView]; 

[[self view] sendSubviewToBack:backgroundView]; 

Đối phó với các tập tin NIB

[[self view] sendSubviewToBack:background]; 

nơi nền là một IBOutlet khai báo trong file header và kết nối với Chế độ xem hình ảnh của NIB trong IB.

Tôi có thiếu một bước ở đây không?

Trả lời

8

Đặt khung và không sử dụng sendSubviewToBack:. Nếu bạn đang làm việc với UIImageViews, bạn phải sử dụng [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"imageName.png"]];

UIImageView *backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"imageBackground"]]; 
backgroundView.frame = self.view.bounds; 
[[self view] addSubview:backgroundView]; 

hy vọng đây là thỏa thuận.

+1

nếu có các thành phần giao diện người dùng khác, hãy đảm bảo sử dụng insertSubView như sau: [self.view insertSubview: backgroundView atIndex: 0]; – TharakaNirmana

5
  • Đừng thêm xem hình ảnh như là một subview của xem di chuyển, nó cần phải được một cái nhìn riêng biệt ở cấp cao nhất của hệ thống phân cấp, sau đó gửi đến mặt sau của Z-trật tự.
  • Bạn sẽ cần đặt nền của chế độ xem cuộn thành [UIColor clearColor] và đảm bảo rằng chế độ xem cuộn không được đánh dấu là mờ đục. Bạn có thể làm điều này trong mã hoặc trong trình xây dựng giao diện.
  • Không sử dụng imageWithContentsOfFile và sau đó chỉ cần chuyển tên tệp không có đuôi (tôi giả định .png) - điều này có thể là trả lại nil. Sử dụng imageNamed: thay vì (bạn không cung cấp một phần mở rộng trong trường hợp đó, iOS4 trở lên)

Tuỳ theo tính chất của hình ảnh của bạn, bạn cũng có thể tạo ra một màu với nó và sử dụng rằng như màu nền của chế độ xem cuộn của bạn. Tôi giả sử self.view là chế độ xem cuộn:

self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"globalBackground"]]; 
Các vấn đề liên quan