내부에 피아노 키보드가있는 사용자 정의보기가 있습니다. 각 키는 별도의 호출로 그려 지므로 다시 그려야하는 키만 그릴 수 있습니다. 이 뷰는 여러 개의 터치를 지원하므로 한 번에 여러 개의 키를 누르고있을 수 있습니다.iOS setNeeds 여러 지역에서 표시
각 키는 다소 비싸므로 전체보기 (눈에 띄는 지연 시간이 있음)를 다시 그리지 않으려면보기에서 터치가 감지 될 때마다 setNeedsDisplay에 특정 영역을 전달합니다.
터치를 여러 번 처리하려면 수신 된 터치 집합을 반복하고 각 터치가 키 중 하나에 있는지 확인한 다음 업데이트가 있으면 업데이트하고 setNeedsDisplay를 해당 키의 사각형으로 호출하십시오. 즉, setNeedsDisplay는 한 함수에서 여러 번 호출되지만 매번 다른 rect로 호출됩니다.
예상되는 동작은 drawRect가 다른 더티 영역으로 여러 번 호출되지만, 동시에 맨 왼쪽과 맨 오른쪽 키를 누르면 전체 뷰가 다시 그려지는 것처럼 보입니다. 맨 왼쪽과 오른쪽의 키만 누르면 (사이의 모든 키가 불필요하게 다시 그려집니다).
내가 원하는 것을 얻기 위해 무엇을 할 수 있습니까? 나는 두 개의 더러운 키 사이에있는 모든 키가 아닌, 터치 된 키를 그려야합니다.
벡터를 비트 맵으로 렌더링하는 것이 나에게 가장 좋은 솔루션처럼 들립니다. 고마워요! – phosphoer