사용자 상호 작용에 따라보기에 일련의 선을 그려 넣으려고합니다. 예를 들어, 사용자가 버튼을 누르면 한 줄이 그려집니다. 사용자가 다른 버튼을 누르고 다른 선이 그려지지만 첫 번째 선은 여전히 그곳에 있습니다. 그것은 사소한 일처럼 보입니다. 그러나 제가 읽고있는 것에서 비파괴적인 그림은 그리 간단하지 않습니다. 누군가가 올바른 방향으로, 이상적으로는 몇 가지 샘플 코드로 나를 인도 할 수 있습니까? 물론 어떤 종류의지도도 정말로 높이 평가됩니다. 문자 그대로 여러 가지 직선을 뷰에 계속 그려야합니다. 어떤 도움을 주셔서 미리 감사드립니다!iOS 순차 그리기 지우기없이 이전에 그려진
답변
석영 코어를 사용하려면 매번 다시 그려야 할 것이라고 생각합니다. 누군가가 선을 추가하고, 선을 그리고, 다른 선을 추가하고, 두 선을 추가합니다. on ...하지만 레이어 위에 그려서 서로 위에 계속 추가 할 수 있습니다.
흠, 고마워요. 나는 모든 것을 다시 그릴 필요가없는 방법을 찾고 있습니다. 주어진 시간에 뷰에 백만 줄이있을 수 있으며 각 사용자 상호 작용 후 40-50 개만 그려집니다. 나는 시도하지 않았지만 백만 라인이 순간적이지 않다고 추측하고 있으며 실제로 사용자 경험을 엉망으로 만들 것입니다. –
그럼 레이어 위에 레이어를 추가하거나 OpenGL을 사용할 수 있습니다. – Daniel
1000 레이어는 너무 빠르지 않을 것입니다. 그리고 초보자로서 OpenGL을 피하려고 노력하고 있습니다.하지만 어쩌면 그렇게 할 수 있습니다. 끝내기 위해서. –
실행 취소 기능이 필요하지 않은 경우 그림을 CGBitmapContext
으로 그려서 이미지를 만듭니다. 필요한 경우 화면에 을으로 렌더링하십시오. 이것은 "back buffering"(또는 "double buffering"또는 그냥 "buffered drawing")이라고하며 매우 일반적입니다.
필자는 실행 취소 기능이 필요하다고 생각하지 않습니다. 나는 지금 줄을 지울 필요가있다.하지만 그 위에 배경색의 선을 그려야했다. 나는 당신이 말하는 것에 대한 예를 찾아 보았고, 좋은 것을 찾는데 어려움을 겪었다. (나는 OpenGL을 계속 사용했다. 나는 초보자로서 피하려고 노력하고있다.) drawRect를 시작할 때 어떻게 든 현재 이미지를 가져 와서이 CGBitmapContext에 복사하고, 더 많은 내용을 그려 화면에 복사합니다. 이 샘플을 어디에서 보셨습니까? 나를 미치게 부르지 만, 내가 성취하려고하는 사소한 일처럼 보입니다. 감사 –
- 1. repaint()는 이전에 그려진 점을 지우습니다.
- 2. Qt에서 새 줄을 다시 그리기 전에 이전에 그려진 줄을 제거하거나 지우는 방법?
- 3. iOS : MKMapView에 텍스트 그리기
- 4. WPF - 캔버스에 이미지 그리기 및 반복적으로 지우기 및 다시 그리기
- 5. 그려진 그리드 - .NET
- 6. iOS OpenGL 또는 CoreGraphics 부드러운 직사각형 그리기
- 7. 높은 CPU로드 지연 UIView 다시 그리기 (iOS)
- 8. 그려진 텍스트에 글로우 효과를 추가하십시오
- 9. 순차 검색
- 10. iphone에 그리기
- 11. 순차 파일 만들기
- 12. 보기에 원 그리기
- 13. 부분적으로 그려진 선이없는 TextView
- 14. 벡터 그려진 숫자 사용
- 15. PictureBox에 그려진 이미지 저장
- 16. PHP : 순차 출력을위한 최상의 방법?
- 17. 화면의 DC C++로 그리기 후 강제로 화면 다시 그리기
- 18. BizTalk 순차 파일 이름
- 19. 순차 좌표를 순차적으로 계산합니다.
- 20. 하둡의 순차 파일
- 21. 이벤트 구동과 순차 프로그래밍
- 22. 순차 정렬 알고리즘
- 23. HTML5 순차 실행
- 24. ASP.NET 순차 레이아웃 문제
- 25. 순차 검색 숙제 질문
- 26. 순차 키 동시 생성
- 27. 순차 처리를 수행하는 방법
- 28. openmp 순차 버전
- 29. 그라디언트 색상으로 선 그리기
- 30. 자유형 그리기 재생
주제가 여기에서 논의 된 것처럼 보입니다. [link] (http://stackoverflow.com/questions/865636/uiview-how-to-do-non-destructive-drawing)하지만 솔직히 말하면 이해할 수 없습니다. 솔루션 코드. 나는 새로운 그림이 기존의 이미지보다 어디서 끝나는지를 보지 못했다. –