2010-03-21 1 views
5

나는 코드를 사용하고 있습니다 :UIActionSheet에 녹색 버튼을 코딩하는 방법은 무엇입니까?

{ 
     randomstatus=0; 
     msg=[[NSString alloc]initWithFormat:@"Good job, do you want to continue?"]; 
     UIActionSheet *actionSheet=[[UIActionSheet alloc]initWithTitle:msg delegate:self cancelButtonTitle:@"No" destructiveButtonTitle:@"Yes" otherButtonTitles:nil]; 
     [actionSheet showInView:self.view]; 
     [actionSheet release]; 
     [msg release]; 
    } 

내가 코드를 변경하지 않지만, 나는 "destructiveButton"필요 녹색 대신에 빨간색으로 할 수 있습니다. 이것이 가능합니까 아니면 다른 버튼을 사용해야합니까?

답변

2

UIActionSheet 버튼을 사용자 정의하는 공식 방법은 없습니다.

그러나 UIActionSheet의 하위보기 (이후 iPhone OS 업데이트에서 중단 될 수 있음)에 액세스하거나 원래의 파괴적인 작업 버튼을 덮는 버튼이있는 새로운보기를 추가 할 수 있습니다 (다시 한번 말하지만, 이것은 중단 될 수 있음).

UIActionSheet에서 단추의 색을 변경하는 것과 직접 관련이 없지만 이전 질문 인 iPhone Disabling UIActionSheet buttons은 사용자 지정보기를 UIActionSheet에 추가 할 수있는 몇 가지 방법을 보여줍니다.

3

버튼의 모양을 변경하는 "표준"방법은 없습니다. Apple이 UIActionSheet 구성 요소를 변경하면 사용하는 방법이 본질적으로 해킹 될 수 있으며 향후 중단 될 수 있습니다. 앱 스토어 신을 화나게하면 앱이 거부 될 수도 있습니다.

나는 이것이 미래에 깨질 수 있으므로 UIActionSheet를 서브 클래 싱하지 말고 처음부터 자신 만의 액션 시트 클래스를 만드는 것이 가장 미래 지향적 인 방법이라고 생각한다. 일부 해킹보다 약간 더 일할 수도 있지만 앞으로 얻을 수있는 유연성은 앞으로 유용 할 것입니다.

너무 어렵지 않습니다. 작업 시트의 배경 인보기가 필요하며 표준 UIActionSheet의 스크린 샷과 일부 사진 찍기를 통해 얻을 수 있습니다. 그런 다음 사용자 정의 단추를 하위보기로 추가하십시오. 보기를 불러 오면 약간의 애니메이션이 완성됩니다.

UIActionSheet가 수행하는 모든 메서드를 구현하고 UIActionSHeetDelegate가 예상하는 메서드를 실행 시키려고합니다. 이렇게하면 기본 UIActionSheet를 사용하여 어디서나 대체 할 수 있습니다.