2011-04-14 3 views
7

iPad의 모눈에 내 데이터를 표시하려면 AQGridView을 사용하고 있습니다. 모든 셀은 UIView 하위 클래스이며 일반적으로 동시에 표시되는 셀은 18 개입니다.UIView : 성능 문제가없는 둥근 모서리

해당 셀에 둥근 모서리를 추가하고 싶습니다. 관련 레이어 (즉, UIView 레이어와 하나의 하위보기 레이어)의 cornerRadius 속성을 설정했습니다. 그러나 이로 인해 성능 문제가 발생하고 스크롤이 더 이상 부드럽 지 않습니다. 다른 CALayer 속성을 사용할 때 (예 : shadowOpacity) 발생하지 않습니다.

둥근 모서리를 추가하는 다른 방법이 있습니까 (이미지 사용 제외)? 아니면 내가 잘못하고있는거야?

답변

27

UIImageView 하위보기가 포함 된보기의 레이어에서 cornerRadius를 사용하면 성능이 크게 떨어지는 것을 보았습니다. 래스터 라이 제이션은 그 문제를 해결했습니다 : view.layer.shouldRasterize = YES;

+2

당신은 문자 그대로 내 시간의 톤을 저축했습니다! :) –

+0

나는 큰 성공을 거두기 전에 이것을 사용했다. 그러나 전체 뷰에서 모서리를 반올림하면 전체 뷰의 품질이 다소 저하됩니다. https://skitch.com/franklinwebber/8q8c2/ios-simulator – burtlo

+18

그러나 래스터 화가 너무 낮게 실행되었음을 발견했습니다 이 문제는 'myView.layer.rasterizationScale = [[UIScreen mainScreen] scale];' – burtlo

0

여기에 setCornerRadius 호출을 배치 할 수 있습니다. 예를 들어 drawRect 메소드가 아니라 어딘가에 한 번만 호출되는지 확인하십시오.

+0

그것은'init' 메쏘드에 있습니다, 그래서 그것은 문제가되지 않습니다. – fabian789

+1

는 일반적인 문제인 것처럼 보입니다. http://stackoverflow.com/questions/4735623/uilabel-layer-cornerradius-negatively-impacting-performance – picciano

+0

참조. 나는 그때 이미지를 만들 예정이다. 답변을 받아 들일 수 있도록 의견을 제출해 주시겠습니까? – fabian789