2011-08-23 23 views
5

Tôi đã được một khách hàng yêu cầu tạo một ứng dụng "skinnable" và tôi thực sự không biết điều đó có nghĩa là gì. Tôi googled như điên và tôi đã không tìm thấy một câu trả lời rõ ràng hoặc một ví dụ.Cách tạo ứng dụng iPhone "skinnable"?

Nếu có ai có manh mối về điều này, mọi mẹo sẽ được đánh giá cao.

Cảm ơn.

+6

Bạn nên yêu cầu làm rõ từ khách hàng của mình! – Pepe

+0

Tôi hỏi. Tôi chưa nhận được phản hồi nào nhưng đã nghĩ để có ý tưởng từ bên ngoài trước tiên, giúp tôi hiểu nhanh hơn. – jorjap

Trả lời

3

chung này có nghĩa là ứng dụng sẽ cho phép người dùng chọn hình khác nhau cho giao diện người dùng, mỗi trong số đó sẽ có một màu sắc khác nhau, cảm thấy vv

+0

Ok, nhưng làm thế nào để làm điều này lập trình? Ít nhất một ý tưởng chung sẽ là tuyệt vời. Cảm ơn. – jorjap

+1

Xem http://stackoverflow.com/questions/7151608/what-is-the-recommended-method-of-styling-an-ios-app – Jano

0

Đối với ứng dụng iPhone, nơi phần lớn các thiết kế giao diện được cung cấp bởi hệ điều hành, bạn có thể làm điều đó bằng cách thiết lập tùy chỉnh hình nền thanh Navigation, đồ họa nút tùy chỉnh, và phông chữ khác nhau/kích cỡ/trọng lượng và khoảng trắng. Hãy chắc chắn rằng bạn đang làm việc với một nhà thiết kế quen thuộc với giao diện iPhone (nếu bạn không làm việc chặt chẽ với một nhà thiết kế thì đây sẽ là một cơn ác mộng).

Gần đây tôi đã kết hợp ứng dụng cho khách hàng muốn có GUI được tùy chỉnh nhiều: http://itunes.apple.com/us/app/gogoparis/id428497937?mt=8. Một ứng dụng 'skinnable' sẽ có một số bộ như thế này, vì vậy người dùng có thể lựa chọn giữa một số phong cách tổng thể khác nhau. (Tôi hy vọng khách hàng của bạn có một ngân sách thiết kế khổng lồ!)

0

bài của tôi ở đây sẽ giúp bạn bắt đầu:

What is the recommended method of styling an iOS app?

nếu bạn cần thay đổi chủ đề trực tiếp, từng chủ đề trong ví dụ này có thể gửi thông báo khi người dùng chọn một chủ đề khác (hoặc da) - sau đó bạn có thể cập nhật hoặc là bản thân chủ đề.

cách khác, bạn có thể tạo số nhận dạng cho các chủ đề được ánh xạ (NSCFDictionary) đến một nhà máy chủ đề trung tâm. một số nhận dạng mẫu cho một chế độ xem cụ thể để sử dụng với nhà máy chủ đề có thể là một chuỗi MONImageSelectorTableCellThemeIdentifier.

một người quản lý ví dụ/nhà máy xử lý tất cả tải theme và vends tham chiếu đến các chủ đề:

@interface MONThemeManager : NSObject 

//... 

- (MONTheme *)themeForCurrentlySelectedSkinForViewWithIdentifier:(NSString *)identifier; 

//... 

@end 

vượt ra ngoài đó, thật khó để trả lời câu hỏi của bạn một cách chi tiết hơn mà không biết yêu cầu của bạn. việc triển khai skinning một ứng dụng có thể từ rất đơn giản đến rất rất phức tạp. chúc may mắn.

0

Đã có một số câu trả lời hay ở đây, nhưng tôi sẽ thêm rằng nếu bạn sử dụng bộ công cụ ui như Three20 , bạn có thể làm mọi thứ bằng CSS như bạn có thể làm cho trang web.

0

tôi nhận thấy đây là một bài cũ, nhưng tôi nghĩ rằng tôi muốn chia sẻ xu của tôi về vấn đề này :)

Để thực hiện bất kỳ ứng dụng Cocoa skinnable bạn cần bạn nghĩ về 3 khía cạnh của ứng dụng:

1) Tính đồng nhất: Điều này có nghĩa là trên tất cả các cửa sổ, khung nhìn (bao gồm các nút, đầu vào văn bản, v.v ...), bạn muốn có 'tiêu chuẩn' sẽ áp dụng trong suốt ứng dụng. Đây là điều đầu tiên bạn cần phải xem xét. Mặc dù iOS và OS X cũng đã có 'chủ đề' để đặt nó tức là cách mặc định của Táo tô bóng và đặt mọi thứ ra, bạn có thể ghi đè lên những điều này (tham khảo tài liệu xem/cửa sổ vv ... riêng lẻ.

2) Hiệu suất: Với skinning vv ... hiệu suất luôn luôn là một vấn đề khi nói đến viết drawRect riêng của bạn vv ... phương pháp.Mã táo có sẵn cho 'mặc định' đã được tối ưu hóa, vì vậy bạn cần phải theo dõi chặt chẽ hiệu suất của ứng dụng trong khi bạn đang làm điều này. Ví dụ điển hình là: Tôi có sử dụng hình ảnh có độ dốc không hoặc tôi có sử dụng NSGradient không? Cả hai đều có vấn đề về hiệu suất khi nói đến việc hiển thị chúng, nhưng đó là một câu hỏi trong số đó là tốt hơn trong số hai

3) userDefaults: Đây thường là khu vực bạn sẽ nhận được 'cài đặt da' của bạn từ. userDefaults về cơ bản là nơi bạn lưu trữ tất cả thông tin mà bạn thường đặt trong một cửa sổ ưu tiên.

If I were you tôi muốn nhìn vào các tài liệu tham khảo lớp của nó:

http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/

Hơn nữa, đây là một ví dụ tiện lợi của việc sử dụng userDefaults:

http://mobile.tutsplus.com/tutorials/iphone/nsuserdefaults_iphone-sdk/

Hope this helps !

1

Điều tôi thực sự đã làm với dự án của mình. Tôi quyết định sử dụng nhiều bảng phân cảnh để cho phép tôi kiểm soát tốt hơn toàn bộ giao diện người dùng và UX của từng chủ đề. Tôi lập trình liên kết tất cả chúng lại với nhau thông qua một bảng phân cảnh tổng thể liên kết tất cả chúng lại với nhau. Đó là những gì tôi đã làm, và nó hoạt động rất tốt. Hiệu suất là rất tốt, trong khi vẫn duy trì mức độ kiểm soát hạt mịn cao đối với từng chủ đề. Bạn thậm chí có thể giữ cho các tệp Header và Implementation của bạn giống nhau cho các bộ điều khiển xem riêng lẻ, chỉ để bạn giữ các tên giống nhau trên bảng phân cảnh.

Ví dụ: một trong những ứng dụng của tôi mà tôi đang làm là Jam-mout (Trình phát nhạc) có nhiều chủ đề chất lượng cao. (Ảnh đính kèm). Mỗi chủ đề đều có bảng phân cảnh riêng.

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