2012-06-27 39 views
6

Tôi đang tạo một UITableView với các ô có thể mở rộng/thu gọn cho ứng dụng ios. Tôi đặt một UITableViewCellAccessoryDisclosureIndicator trên các ô này nhưng tôi muốn làm cho mũi tên hướng lên/xuống khi ô được mở rộng/thu gọn.Làm thế nào để xoay UITableViewCellAccessoryDisclosureIndicator?

Tôi thấy rằng có thể tạo nút bằng hình ảnh tùy chỉnh và thay đổi nút theo trạng thái của ô nhưng có vẻ bẩn đối với tôi vì tôi không cần nút ở đó và tôi phải thêm 2 hình ảnh cho dự án (ok nó không phải là lớn nhưng anyway).

Vì vậy, sẽ không tốt hơn nếu chỉ cần xoay UITableViewCellAccessoryDisclosureIndicator hiện tại? và nếu có thì tôi có thể làm như thế nào?

+0

Thảo luận đầy đủ .. http://stackoverflow.com/questions/13836606/use-table-view-disclosure-indicator-style-for-uibutton-ios – Fattie

Trả lời

8

Đây không phải là chính xác những gì bạn muốn, nhưng đây là điều đầu tiên tôi nghĩ đến. Đầu tiên, tạo một nút kiểu UIButtonTypeDetailDisclosure:

UIButton *button = [UIButton buttonWithType:UIButtonTypeDetailDisclosure]; 

Tiếp theo, xoay nút 90 độ:

CGAffineTransform rotationTransform = CGAffineTransformIdentity; 
rotationTransform = CGAffineTransformRotate(rotationTransform, DegreesToRadians(90)); 
button.transform = rotationTransform; 

Cuối cùng, sử dụng nút như accessoryView:

cell.accessoryView = button; 

Hy vọng rằng sẽ giúp .

+0

Việc sử dụng DegressToRadians có yêu cầu điều gì đó đặc biệt không? Ứng dụng của tôi không biên dịch nữa ... Biểu tượng không xác định cho kiến ​​trúc i386: "_DegreesToRadians", được tham chiếu từ: – Alexis

+1

Heh, tôi nghĩ rằng nó đã được xác định trước. '#define DegreesToRadians (x) (M_PI * x/180.0)' sẽ làm việc cho việc này. Bạn có thể đặt nó ở đầu tệp của bạn. Nếu bạn sử dụng nó trong nhiều tệp, bạn nên tạo tiêu đề Chuyển đổi.h và đặt định nghĩa trong đó. –

+0

vâng cuối cùng tại sao không chỉ sử dụng radian trực tiếp? M_PI/2 là tốt. – Alexis

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