UITableView cornerRadius with border performance i

2019-02-22 12:17发布

问题:

I have some interesting notice with scrolling performance on UITableView with cornerRadius, borderWidth and borderColor enabled.

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

If I remove borderWidth and borderColor than scrolling gets 60 FPS no problem. As long as I add those two properties to layer FPS drops.

Does anyone have a suggestion or explanation why this strange behavior happens?

Many Thanks!

回答1:

CALayer having shouldRasterize property for this type of performance issue. Just set

self.tableView.layer.shouldRasterize = YES;

This single line saved my lot of time and work.



回答2:

I just found out that cornerRadius with borderWidth sluggish tableView performance by a lot. So instead of 10.f radius I changed to 5.f and performance has increased amazingly. Still not perfect but noticeably better...