그래서 ScrollView에 카드가 있습니다. ScrollView는 페이징이 가능해야합니다.ScrollView에서 하나의 요소 스크롤링 관리
목표는 사용자가 하나의 카드 만 가지고 있어도 스크롤 할 수 있어야한다는 것입니다. ScrollView의 프레임을 카드의 그림과 정확히 같은 너비와 높이로 가지고 있기 때문에 ScrollView.contentSize의 폭을 늘리고 한 점을 추가하기로 결정했습니다.
잘 작동하는 것으로 판명되었지만 약간의 결함이 있습니다. 카드를 왼쪽으로 드래그 한 다음 다시 움켜 잡으면 오른쪽으로 조금 움직입니다. (나는 그 한 점의 가치로 생각합니다.). contentSize를 늘리면 이동도 증가합니다 (예를 들어 콘텐츠 크기가 10만큼 증가하면 시프트 값도 10 포인트가됩니다). 그것은 정말로 나를 많이 괴롭 히고 나는 그것을 제거하고 싶습니다.
그 방법에 대한 조언이 있으십니까? 도움을 많이 주시면 감사하겠습니다.
UPD : scrollViewDidEndDecelerating에서 수동으로 카드 중심을 다시 잡으려고 시도했지만 도움이되지 않았습니다. 내 생각 엔 지금은 (0,0)이기 때문에 컨텐츠 오프셋을 올바른 값으로 설정하면 문제를 해결할 수 있지만 그 방법을 알 수는 없다.
UPD2 :
calendarScrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, 334, 372)];
//The cards themselves are 334 points wide too
calendarScrollView.clipsToBounds = NO;
calendarScrollView.pagingEnabled = YES;
calendarScrollView.bounces = YES;
calendarScrollView.showsHorizontalScrollIndicator = NO;
calendarScrollView.delegate = self;
//This part is used in the cycle of creating the cards
for (...) {
...
if (onlyOneCard) {
calendarScrollView.contentSize = CGSizeMake(335, 372);
onlyOneCard = 0;
} else {
calendarScrollView.contentSize = CGSizeMake(334+offsetInScrollView, 372); //offsetInScrollView is increased by 334 by every end of the iteration of the cycle
}
...
}
페이징 사용이 이미 TRUE입니다. – morgan1189
bounces 속성은 어떻습니까? – achi
TRUE로 설정해도 도움이되지 않았습니다. – morgan1189