2014-05-20 2 views
9

새로 고침까지 천천히 아래로 당길 때 새로 고침을 시작하기 전에 UIActivityIndicator 서클이 천천히 더 완벽하게 표시됩니다. 원이 완료되고 새로 고침이 실제로 실행되기 바로 전에 콘텐츠가 점프/저크 해제 된 다음 원이 회전하기 시작합니다. 나는 천천히 내려갈 때만 이것을 알 수 있습니다.iOS에서 새로 고침 이동 새로 고침

나는

self.refresh = [[UIRefreshControl alloc] init]; 
    [self.refresh addTarget:self action:@selector(handleRefresh) forControlEvents:UIControlEventValueChanged]; 
    [self.mainSV addSubview:self.refresh]; 

왜이 점프/경련이 일어날 않습니다 mainSV

라는 스크롤 뷰 안에 새로 고침 풀을 사용하고 있습니다?

+0

스토리 보드를 사용하고 있습니까? 타겟 iOS는 무엇입니까? – andrewbuilder

+0

나는 메인 스토리 보드를 가지고있다. 스크롤보기가 xib에 있습니다. 나는 이것이 iOS 6에서 문제가 아니라는 것을 알아 냈다. 단지 iOS 7에서 점프한다. – tcox

+0

iOS 6 & 7 사이에서'refresh '가 변경되었다. 나는 대답을 줄 것이다 ... – andrewbuilder

답변

8

아마도 iOS의 버그 일 것입니다. 설정이 정확하고 앱에서 똑같은 것을 볼 수 있습니다.

5

점프/얼간이가 "double"동작으로 인한 것 같아요.

같은

엑스 코드 5의 출시 다음 refresh 구현에 변화가 있었다의 Apple Documentation에 설명 된대로 대상의 동작을 설정하기위한 요구 사항은 더 이상 필요하지 않습니다.

스토리 보드를 사용하는 경우 인터페이스 작성기/스토리 보드 파일에서 스토리 보드 장면 (테이블보기 컨트롤러)을 선택하십시오.

속성 검사기에서 표보기 컨트롤러 아래에서 항목 "새로 고침"을 선택하고 "사용 안 함"에서 "사용함"으로 설정을 변경합니다.

Attribute Inspector for Table View Controller

삭제 또는 귀하의 질문에 포함한 코드의 세 줄을 주석 처리합니다. (이 요구 될 때, 즉 이전의 엑스 코드 5, 내 viewDidLoad TVC 수명주기 방법이 코드를 배치.)

를 자동으로 코드에 삽입되지 않은 경우, 공공 또는 개인 IBAction 중 하나로이 추가 ...

보낸 이벤트 "변경 값"에 장면/테이블 뷰 컨트롤러에
- (IBAction)refresh:(UIRefreshControl *)sender; 

및 와이어.

Visual representation of outlet connection

당신의 새로 고침 작업이 제대로 구성되어 있는지 확인합니다 ... 어떤 속성이 refreshControl 설정 될 필요하지 않다는

- (IBAction)refresh:(UIRefreshControl *)sender { 
    [self.refreshControl beginRefreshing]; 

    // Refresh code for your TVC 

    [self.refreshControl endRefreshing]; 
} 

주 - 나는이 작업을 자동으로 합성을하는 트리거가 의심 할 때를 스토리 보드의 TVC 속성에서 Refreshing [Enabled] 설정을 선택하십시오.

당신이 당신의 코드에서 새로 고침을 호출이 줄을 사용해야하는 경우 ...

[self refresh:self.refreshControl]; 
+4

사이에 이해가된다면,이 방법은'UITableViewController'의 서브 클래스에서만 작동합니까? 하지만'UIViewController' 내부의'UITableView'가 아닌가요? – oyatek

+1

나는이 방법을 구현할 때 여전히 점프/얼간이를 얻는다. ( – lostintranslation

+0

@oyatek per [Apple docs] (https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIRefreshControl_class/) 새로 고침 컨트롤은 테이블 뷰 컨트롤러에서 관리하는 테이블 뷰에서 사용하도록 특별히 설계되었습니다. 두 번째 옵션이 질문에 언급 된 곳이 확실하지 않은 경우 – andrewbuilder

1

나는 코드의 나머지 부분을보기 위해 (적어도 스크롤 + 상쾌한 방법이나)를 필요로 문제를 진단하십시오.

다음은 objective-c 및 swift에서 사용자 정의 끌어 오기 새로 고침 컨트롤 구현을위한 자습서입니다. 이 자습서를 따르는 경우 점프 또는 멍청이가 없어야합니다.

http://www.jackrabbitmobile.com/design/ios-custom-pull-to-refresh-control/

는 희망이 도움이!

관련 문제