2010-06-02 3 views
0

사용자가 휴대 전화를 흔들면 테이블보기에서 행을 삭제하는 iPhone 응용 프로그램을 개발 중입니다. 탐색 기반 프로젝트를 만들었습니다. 이제 사용자가 iPhone을 흔들면 탐색 모음의 제목이 "삭제"로 변경되고 삭제 단추가 탐색 막대에 동일한보기로 표시되기를 원합니다. 그렇지 않으면 사용자가 특정 행을 선택하면 다음 행으로 이동해야합니다. 다음 코드를 작성했지만 작동하지 않습니다. 제발 도와주세요.iPhone : 사용자가 흔들릴 때보기 수정

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if (isShaked == NO) 
    {  
    //logic to move to next view goes here. 
    } 
    else 
    { 

     self.title = @"Delete Rows"; 
     delete=[[UIBarButtonItem alloc] initWithTitle:@"Delete rows" style: 
UIBarButtonItemStyleBordered target:self action:@selector(deleteItemsSelected)] ; 

       self.navigationItem.rightBarButtonItem=self.delete; 
     MyTableCell *targetCustomCell = (MyTableCell *)[tableView cellForRowAtIndexPath:indexPath]; 
     [targetCustomCell checkAction]; 
     [self.tempArray addObject: [myModal.listOfStates objectAtIndex:indexPath.row]]; 

     //[delete addTarget:self action:@selector(deleteItemsSelected:) forControlEvents:UIControlEventTouchUpInside]; 

     self.tempTableView = tableView; 
    } 
} 

-(void)deleteItemsSelected 
{ 
    [myModal.listOfStates removeObjectsInArray:tempArray]; 
    [tempTableView reloadData]; 
} 

checkAction 방법은 선택된 행에 표시 점을 넣어 사용되는 정의 셀 방법이다.

답변

0

전화가 흔들리는 지 확인하려면 수업에 UIAccelerometerDelegate 프로토콜을 사용해야합니다. 예를 들어

: 전화가 흔들리고 때 다음

@interface myTableViewClass : UITableView <UIAccelerometerDelegate> 

, 당신은 (내가있는 viewDidLoad이 사용) 말할 수 있어야합니다 : 사용자가 전화를 흔들

[[UIAccelerometer sharedAccelerometer] setDelegate:self]; 
[[UIAccelerometer sharedAccelerometer] setUpdateInterval:0.1]; 

되면 당신은 분명히 더 확인하기 위해 간격을 변경할 수 있습니다

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration 
{ 
    if(fabsf(acceleration.x) > 2.2 || fabsf(acceleration.y) > 2.2 || fabsf(acceleration.z) > 2.2){ 
     //The user has shaken the iPhone 
    } 
} 

:이 방법에 마술을 할 수 종종 사용자의 필요에 맞게 가속도계 : didAccelerate 메소드의 매개 변수를 변경하십시오.

0

확인 이러한 방법/API는 :

- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event 

- (void)motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event 

- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event 

이 모션 인식에 제공하는 이벤트 핸들러이다. 이들을 사용하기 전에 문서를 검토하십시오.