2014-09-21 3 views
4

내 응용 프로그램에서 기본적으로 UIScrollView 일부 셀 (사용자 지정 UIControl)을 포함하는 달력을 만들었습니다. Mon, Tue, Wed ...) 및 분명히 일부 구분 기호 (1px 두께의 UIView)가 있습니다.내 UIScrollView (일부 UIControls 포함) iOS 8에서 더 이상 스크롤하지 않습니다.

모든 것이 iOS 7에서 정상적으로 작동했으며,이를 선택하여 셀을 선택할 수있었습니다 (UIControlEventTouchUpInside 이벤트를 사용하여 선택). 이전 또는 다음 달을 표시하기 위해 페이징 된 scrollview를 드래그했습니다.

하지만 iOS 8로 전환하고 Xcode 6을 다운로드 한 이후 더 이상 작동하지 않습니다. 실제로 셀을 선택할 수는 있지만 scrollview는 스크롤하지 않습니다 (터치 이벤트 관리없이 기본 UIView 인 헤더 나 구분 기호에서 드래그하는 경우 제외).

저는 셀에서 스크롤보기를 드래그하기 시작합니다. 고정되어 있습니다.

제발 도와주세요 ...

나는 아무것도 변경하지 않은, 그래서 더 이상 작동하지 않는 이유를 이해가 안 돼요! :)

덕분에 많은

PS : 내 나쁜 영어

답변

4

편집 죄송합니다, 프랑스어 해요 : 애플이 가질 수 있도록 아이폰 OS 8.1과 행동이, 아이폰 OS 8.0 전에 행동과 비슷한 것 같다 '고쳤다. 그래서 아래 답변은 더 이상 필요하지 않습니다.


iOS 8에는 UIScrollview 처리에 영향을 미치는 변경 사항이 있습니다. UIScrollView는 UIControl의 경우 콘텐츠를 더 이상 추적하지 않습니다. 내가 한

것은,있는 UIScrollView의 하위 클래스와 touchesShouldCancelInContentView

- (BOOL) touchesShouldCancelInContentView:(UIView *)view { 
    return YES; 
} 

참조를 덮어하는 것입니다 또한 https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIScrollView_Class/index.html

반환 값

: YES 없음 계속 보기를 가지고 볼 것이 없습니다 더 터치 메시지를 취소 할 수 해당 메시지를 수신합니다. 기본 반환 값은 입니다. 뷰가 UIControl 객체가 아닌 경우 YES입니다. 그렇지 않으면 NO를 리턴합니다.

+0

오, 정말 고맙습니다. 내 문제가 해결되었습니다! 기본 구현이 NO를 리턴하는 것은 너무 나쁘다. 많은 시간을 절약 할 수있다. –

+0

@Thomas 다행 나는 구름을 돕는다. 문제가 해결되면 제 대답을 수락하십시오 (녹색 눈금 설정, http://meta.stackexchange.com/a/5235 참조). – marcus

+0

감사합니다. –