2010-03-21 7 views
5

Tôi đang sử dụng mã:Làm cách nào để viết mã màu xanh lục trong UIActionSheet?

{ 
     randomstatus=0; 
     msg=[[NSString alloc]initWithFormat:@"Good job, do you want to continue?"]; 
     UIActionSheet *actionSheet=[[UIActionSheet alloc]initWithTitle:msg delegate:self cancelButtonTitle:@"No" destructiveButtonTitle:@"Yes" otherButtonTitles:nil]; 
     [actionSheet showInView:self.view]; 
     [actionSheet release]; 
     [msg release]; 
    } 

Tôi không muốn thay đổi mã, nhưng tôi cần những "destructiveButton" để có màu xanh thay vì màu đỏ. Điều này có thể, hoặc tôi cần phải sử dụng một nút khác?

Trả lời

2

Rất tiếc, không có bất kỳ phương pháp chính thức nào được cung cấp để tùy chỉnh nút UIActionSheet.

Tuy nhiên, bạn có thể truy cập vào các bản xem trước của UIActionSheet (có thể phá vỡ trong bản cập nhật hệ điều hành iPhone trong tương lai) hoặc thêm chế độ xem mới bằng nút bao gồm nút tác vụ phá hoại ban đầu (một lần nữa, điều này có thể bị hỏng).

Mặc dù không liên quan trực tiếp đến việc thay đổi màu của nút trên UIActionSheet, câu hỏi trước đây: iPhone Disabling UIActionSheet buttons thể hiện một số cách bạn có thể thêm chế độ xem tùy chỉnh vào UIActionSheet.

3

Không có cách "chuẩn" thay đổi nút xuất hiện của các nút. Bất kỳ cách nào bạn sử dụng về cơ bản sẽ là hack và có thể phá vỡ trong tương lai nếu Apple thay đổi thành phần UIActionSheet. Họ cũng có thể khiến ứng dụng của bạn bị từ chối nếu họ làm phiền các vị thần App-Store.

Tôi nghĩ cách chứng minh tương lai nhất để đạt được điều này là tạo lớp bảng hành động của riêng bạn từ đầu, tức là không phân lớp UIActionSheet (vì điều này có thể xảy ra trong tương lai). Mặc dù điều này có thể là một chút công việc phía trước hơn một số hack, sự linh hoạt thêm bạn sẽ đạt được sẽ có ích trong tương lai.

Điều này không quá khó. Bạn sẽ cần một khung nhìn là nền cho trang tính hành động mà bạn có thể nhận được bằng cách chụp ảnh màn hình của một UIActionSheet chuẩn và một số hình ảnh. Sau đó, thêm các nút tùy chỉnh của bạn dưới dạng chế độ xem phụ. Một chút hoạt hình để hiển thị chế độ xem và bạn đã hoàn tất.

Tôi muốn hướng dẫn lớp của bạn triển khai tất cả các phương thức mà UIActionSheet thực hiện, cũng như kích hoạt các phương thức mà UIActionSHeetDelegate mong đợi. Bằng cách này, bạn sẽ có thể thay thế nó ở bất kỳ nơi nào bạn muốn sử dụng một UIActionSheet bản địa