2012-06-27 39 views
5

Tôi có một số thông báo thú vị với hiệu suất cuộn trên UITableView với cornerRadius, borderWidthborderColor được bật.Góc UITableViewRadius với các vấn đề về hiệu suất biên giới trên iOS

self.tableView.layer.cornerRadius = 10.f; 
self.tableView.layer.borderWidth = 1.0f; 
self.tableView.layer.borderColor = [UIColor whiteColor].CGColor; 

Nếu tôi loại bỏ borderWidthborderColor hơn di chuyển được 60 FPS không có vấn đề. Miễn là tôi thêm hai thuộc tính đó vào lớp FPS giọt.

Có ai có đề xuất hoặc giải thích lý do hành vi lạ này xảy ra không?

Rất cám ơn!

+1

Vì nó cần nhiều thao tác vẽ hơn. – onegray

+0

Vì borderWidth? –

+1

Tôi nghĩ vậy. Bằng cách đặt 'borderWidth' và' borderColor', nó thêm các hoạt động bổ sung để vẽ đường viền. Tương tự cho 'angleRadius'. – onegray

Trả lời

1

Tôi vừa phát hiện ra rằng cornerRadius với borderWidth sluggish tableView performance by lot. Vì vậy, thay vì bán kính 10.f tôi đã thay đổi thành 5.f và hiệu suất đã tăng đáng kinh ngạc. Vẫn không hoàn hảo nhưng đáng chú ý hơn ...

6

CALayer có shouldRasterize thuộc tính cho loại vấn đề hiệu suất này. Chỉ cần đặt

self.tableView.layer.shouldRasterize = YES; 

Dòng đơn này đã tiết kiệm rất nhiều thời gian và công việc của tôi.

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