2014-12-20 22 views
8

Làm cách nào tôi có thể đặt hình nền ứng dụng WatchKit của mình theo cách lập trình? Tôi cần phải thiết lập điều này trong mã khi nó thay đổi tùy thuộc vào kích thước biến và chúng ta cần phải đặt một nhãn trên hình ảnh.Apple Watch đặt hình nền

Trả lời

21

Nó không thể programatically thiết lập các hình nền trên một toàn bộ Xem App trang trong WatchKit ... hình nền cho toàn bộ trang có thể tại thời điểm hiện tại chỉ có thể được thiết lập trong giao diện Builder nó xuất hiện.

Tuy nhiên, bạn có thể thiết lập một hình ảnh làm nền đằng sau một nhãn, và làm cho hình ảnh đó lấp đầy màn hình: Set a background image on a Group in WatchKit

  1. Tạo một nhóm trong cảnh WatchKit của bạn. Bạn có thể muốn đặt thuộc tính kích thước tùy chỉnh cho chế độ xem (ví dụ: trong Cài đặt kích thước Chiều rộng và Chiều cao là 'Tương đối so với Vùng chứa' có giá trị '1' để lấp đầy cảnh.
  2. Đặt hình nền mong muốn của bạn làm Nền .. thuộc tính cho nhóm
  3. đặt nhãn của bạn trong nhóm, và định dạng nó như mong muốn

hình ảnh nhóm này cũng có thể được thiết lập trình:

  1. đặt IBOutlet cho nhóm của bạn WatchKit Extension theo cách thông thường, bằng cách kéo-Ctrl từ nhóm vào lớp Bộ điều khiển giao diện của bạn trong phần Mở rộng.
  2. Đảm bảo hình ảnh của bạn được bao gồm dưới dạng 'Sao chép tài nguyên gói' trong Ứng dụng WatchKit của bạn (không phải Tiện ích mở rộng).
  3. Set hình nền trong phương pháp awakeWithContext của Extension (giả sử bạn gọi là 'nhóm' IBOutlet bạn):

    [self.group setBackgroundImage:[UIImage imageNamed:@"myImageName.png"]]; 
    

    Hai kỹ thuật này tất nhiên không độc lập lẫn nhau. Bạn có thể thiết lập một hình ảnh ban đầu trong Interface Builder, và sau đó thay thế nó theo chương trình sau này nếu được gọi.

+3

này đã cứu tôi: "Đảm bảo hình ảnh của bạn được bao gồm như là một 'Sao chép Bundle Resource' trong WatchKit App của bạn (không phải là mở rộng) . " –

+0

Bạn cũng có thể thực hiện việc này (setBackgroundImage trên một nhóm) với dữ liệu hình ảnh được lấy từ một dịch vụ web hoặc một vị trí bên ngoài khác (bất kỳ đối tượng NSData nào có thể được sử dụng). Vì vậy, bạn không nhất thiết cần phải có hình ảnh như một phần của gói. Tiện ích mở rộng sẽ xử lý việc truyền hình ảnh tới Apple Watch cho bạn. – Mike

+0

@SilviuSt, tôi không thể tìm thấy 'Sao chép tài nguyên gói' trong các thiết lập mục tiêu' WatchKit App' của tôi –

3

Tôi đã sử dụng setBackgroundImageNamed: và hoạt động. Chỉ cần chuyển tên của hình ảnh cùng với phần mở rộng. Hãy chắc chắn rằng hình ảnh là trong gói ứng dụng WatchKit của bạn hoặc bộ nhớ cache thiết bị của bạn phía

[self.groupA setBackgroundImageNamed:@"image.png"]; 
Các vấn đề liên quan