2014. 11월 말


ScrollView 는 모바일 앱을 만들 때 빼놓고 화면을 구성하기 힘든 UI중 하나다.

cocos2d-x 에는 extension 으로 ScrollView 가 있다. 이 ScrollView 는 미적으로 기능적으로 큰 문제를 안고 있다.


- 미적인 문제

cocos2d-x 앱을 개발하며 ScrollView 를 사용해본 사람은 알겠지만 스크롤의 움직임이 허접한 게임 느낌이 난다.

스크롤 바운스의 경우 특히 심하다. 이게 의도된 움직임이라면 어쩔 수 없지만, 대부분 이런 움직임을 바라진 않을 것이다.


- 기능적인 문제

기본으로 제공되는 Menu 클래스를 같이 사용하면 ScrollView 에 문제가 생긴다.

Menu 를 터치하면 스크롤이 움직이지 않는다는 것이다.

또 기타 여러 미세한 동작들이 불가능하다. 예를 Menu 클래스의 터치 상태를 알아낼 수 없다. 등등


결과적으로 extension의 ScrollView는 터치 없이 스크롤만 되는 ScrollView 로 사용하라는 얘기다.



그래서 이런 문제점을 해결하기 위한 아래의 미션을 가지고 ScrollView 를 만들었다.


- ScrollView 안에 버튼을 사용할 수 있게 한다.

- 버튼이 터치된 상태에서 드래그 하면 버튼을 놓고 스크롤링이 가능하게 한다.

- 버튼의 터치 상태를 파악할 수 있게하여 개발자가 컨트롤 할 수 있도록 한다.

- ScrollView 의 상태를 알 수 있게 한다. (드래그 중인지, 바운스 되고 있는지, 드래그가 끝났는지 등등)

- ScrollView 의 스크롤이나 바운스의 움직임을 자연스럽게 한다. 



저작자 표시 비영리 변경 금지
by 리노아 봄날의 고양이 2014/12/24 03:40
| 1 2 3 4 5 ... 12 |

티스토리 툴바