2011-08-27 42 views
7

Tôi đã tạo chuyển đổi trong cellForRowAtIndexPath như thế này.Điều này có nghĩa là gì? initWithFrame: CGRectZero]

UISwitch *switchView = [[UISwitch alloc] initWithFrame:CGRectZero]; 

CGRectZero tương đương với CGRectMake (0,0,0,0). Nhưng, chuyển đổi được nhìn thấy ở kích thước bình thường. Tôi đã không chỉ định kích thước actuall. Vui lòng giải thích cho tôi cách mã hoạt động.

Trả lời

6

UISwitch không thể tùy chỉnh, điều này cũng áp dụng cho kích thước.

Ghi đè UISwitch initWithFrame: và thực thi kích thước phù hợp cho điều khiển. Các thành phần kích thước của hình chữ nhật đã cho bị bỏ qua.

+0

thực UISwitch đè sizeThatFits: nhưng hiệu quả là như nhau. – progrmr

0

Bất kỳ đối tượng UIView nào đều có thể ghi đè kích thước khung hình bằng cách triển khai phương pháp sizeThatFits: của UIView. Trong thực tế, UIView class reference nói rằng:

một đối tượng UISwitch trả về một giá trị kích thước cố định đại diện cho kích thước tiêu chuẩn của một cái nhìn công tắc

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