Tôi có một hình ảnh mà tôi muốn làm nền cho ứng dụng của mình cho dù họ đang xem bộ điều khiển nào - bạn làm cách nào để thực hiện điều này?đặt hình nền cho toàn bộ ứng dụng iPhone/iPad
Trả lời
Đây là cách bạn thiết lập một nền tảng cho một hình ảnh:
self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"Background.png"]];
Edit: Để viết lên những gì Felixyz nói (và nhờ Manni), làm điều này trong đại biểu của bạn:
window.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"Background.png"]];
Và trong mỗi chế độ xem bạn muốn có hình ảnh, hãy thực hiện điều này:
self.view.backgroundColor = [UIColor clearColor];
Phụ thuộc vào loại giao diện bạn có. Tabbed? Điều hướng dựa? Nhưng câu trả lời chung là: thêm UIImageView vào UIWindow của bạn trước/bên dưới chế độ xem chính của bạn. Sau đó, mọi chế độ xem được xử lý bởi bộ điều khiển chế độ xem chính của bạn đều có nền trong suốt. Khó có thể đưa ra lời khuyên cụ thể hơn mà không biết liệu bạn có sử dụng IB hay không, hoặc phân cấp khung nhìn của bạn trông như thế nào.
Navigation dựa, để xem các bộ điều khiển được đẩy và popped nền vẫn – Slee
Kết hợp của sudo và gợi ý Manni làm cho nó dễ dàng để thực hiện những gì bạn cần: thiết lập các backgroundColor trên cửa sổ là một hình ảnh (colorWithPatternImage :) và tạo backgroundColor trên bộ điều khiển điều hướng và tất cả các bộ điều khiển con của nó trong suốt. Bạn có thể phải đặt opaque = NO trên chúng. Lưu ý rằng điều này có thể ảnh hưởng đến hiệu suất trong hoạt ảnh nhưng không phải là vấn đề trên các thiết bị mới hơn. – Felixyz
Trong ứng dụng của tôi, tôi đặt màu nền mặc định. Có lẽ bạn có thể làm điều này với hình nền bạn:
1 .: Đặt màu nền của UIWindow của bạn trong appdelegate của bạn:
window.backgroundColor = [UIColor myBackgroundGray]; // own Category
2 .: Và bây giờ, làm cho tất cả quan điểm khác trong suốt:
self.view.backgroundColor = [UIColor clearColor]; // = transparent
Điều này gây ra một ux nghèo khi trình bày người thuyết trình phương thức với hoạt hình. Bạn có thể thấy các điều khiển từ chế độ xem phương thức và chế độ xem hiện tại và sau đó chế độ xem hiện tại biến mất. –
Nền của bạn là thuộc tính của bất kỳ đối tượng Kế thừa xem nào. Nhãn, Nút, Bộ điều khiển và cửa sổ ứng dụng, ví dụ, tất cả đều có hình nền. Nếu bạn muốn nó hoàn toàn là một bg cho toàn bộ ứng dụng, bạn phải leo lên con đường trong bộ điều khiển của bạn để tìm xem "top" (dưới cùng) xem, và thiết lập nền của nó là hình ảnh bạn mong muốn.
Trong appdelegate của bạn trong
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
Thêm dòng này:
[self.window setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]]];
Sau khi bạn chỉ cần thiết lập quan điểm nền tảng của bạn để [UIColor clearColor];
Tôi không chắc về chức năng hoạt động, nhưng tôi cần phải thực hiện điều gì đó tương tự và kết thúc bằng cách sử dụng UIImageView hoạt động tốt (trong C#, nhưng hoạt động tương tự trong 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);
Điều này không xử lý các thay đổi định hướng, nhưng trong trường hợp của tôi, cho phép tôi thêm hiệu ứng chuyển động vào phông nền (chẳng hạn như thị sai).
Tôi thường sử dụng chức năng này để tránh trùng lặp với thanh điều hướng trên iphone.
-(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];
}
chỉ cần gọi này assignbackground
trong viewDidLoad
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)
}
- 1. đặt hình nền cho toàn bộ ứng dụng trong android
- 2. Đặt UIKeyboardAppearance trên toàn bộ ứng dụng
- 3. Thêm nền cho toàn bộ UISplitViewController
- 4. Áp dụng các góc tròn cho toàn bộ ứng dụng
- 5. JWPlayer cho video nền toàn màn hình
- 6. đặt nền trong suốt cho UILabel cho ứng dụng iphone
- 7. cách phù hợp với toàn bộ hình ảnh trên màn hình làm hình nền
- 8. Xác định văn hóa cho toàn bộ miền ứng dụng
- 9. Tắt chế độ ngang cho toàn bộ ứng dụng
- 10. cách đặt màu nền của toàn bộ trang trong css
- 11. Đặt cửa sổ của ứng dụng eclipse e4 để có toàn bộ kích thước màn hình
- 12. Có thể bật ToolTipService.ShowOnDisabled = true cho toàn bộ ứng dụng
- 13. Symfony2: Cách buộc HTTPS cho toàn bộ ứng dụng?
- 14. Đặt màu nền/hình ảnh cho EKEventEditViewController
- 15. Hình nền cho wrap_content
- 16. Android: Sử dụng bộ chọn để đặt màu nền cho chế độ xem hình ảnh
- 17. Đặt hình nền cho màu phông chữ?
- 18. Cách tạo hình nền của ứng dụng lặp lại
- 19. Cách đặt múi giờ chung cho toàn bộ ứng dụng trong winforms
- 20. cách đặt thông tin văn bản mặc định cho toàn bộ ứng dụng C#
- 21. Làm cho ứng dụng WPF toàn màn hình (Cover startmenu)
- 22. Đặt hình nền Emacs
- 23. Đặt hình nền thành uitableview?
- 24. Hình nền động - "Đặt hình nền" - Cần sự kiện để xóa bộ nhớ
- 25. Hình nền toàn trang với cuộn dọc
- 26. Phát hiện Nhấp vào nút "Đặt hình nền" trong Bộ chọn hình nền động
- 27. Con trỏ ẩn toàn cầu (từ ứng dụng nền)
- 28. Đặt văn hóa hiện tại cho toàn bộ giải pháp
- 29. Đặt Màn hình chính Hình nền
- 30. Ánh sáng màu nền hộp nên bao gồm toàn bộ màn hình sử dụng CSS
Tôi đã kết thúc bằng cách sử dụng một UIImageView trên cửa sổ chính nib và UIColor clearColor trên quan điểm của tôi. Lưu ý rằng việc sử dụng colorWithPatternImage khi bạn nói ở trên làm cho việc sử dụng bộ nhớ của tôi nhảy từ 1.7M lên 9.5M khi ứng dụng được tải lần đầu tiên - colorWithPatternImage dường như chỉ ăn hết một tấn bộ nhớ. – Slee
Bạn nên chuẩn bị 3 tệp png cho ứng dụng Universal của mình, theo Background.png, [email protected], Background ~ iPad.png và đặt nền bằng mã bên dưới: self.view.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed: @ "Background"]]; iOS sẽ chọn tệp png chính xác do danh mục thiết bị của bạn. Hy vọng sự trợ giúp này. – ZYiOS
Tôi đã thử phương pháp trên trong ứng dụng dựa trên 'UINavigation'. Vấn đề với cách tiếp cận này là thiết lập hình ảnh trên window.background đặt hình ảnh đúng cách nhưng làm cho chế độ xem màu khác rõ ràng là xấu như trong khi nhấn hoặc xem pop chồng chéo bạn có thể thấy các khung nhìn được đẩy trong ngăn xếp .Bất cứ ý tưởng làm thế nào để có được nó cố định – Shekhu