2015-02-01 1 views
0

두 개의 버튼이있는 액션 시트를 만들고 싶지만 단추에 미리보기 아이콘이 있어야합니다. 다른 솔루션? 어쩌면 액션 시트 버튼을 커스터마이징하는 방법이 있습니다. 별도로 디자인하는 것이 좋을까요?액션 썸네일 icn을 어떻게 추가 할 수 있습니까?

이 내 현재의 액션 시트 방법 :

- (void)tapResponder { 

    NSLog(@"Tap!"); 

    UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"this is a title" 
                  delegate:self 
                cancelButtonTitle:@"Cancel" 
               destructiveButtonTitle:nil 
                otherButtonTitles:@"one", @"two", nil]; 
    [actionSheet showInView:self.view]; 
} 

하지만 난 정말 IOS 디자인 머무르고 싶은 그렇게) : 나에게

thankssss을 시원한 해결책을주세요!

답변

0

아마이 도움이 :

for (UIView *subview in actionSheet.subviews) { 
    if([subview isKindOfClass: [UIButton class]]){ 
     UIButton* btn = (UIButton*) subview; 
     [btn setImage:[UIImage imageNamed: @"imageName"] forState:UIControlStateNormal]; 
    } 
} 
0

아주 쉽게, 아주 가능한 구현할 :

이뿐만 아니라 새로운 UIAlertController와 함께 작동 :

UIAlertController *alertC = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerSytleActionSheet]; 

//Add your Actions 
... 
UIAlertAction *snapshot = [UIAlertAction actionWithTitle:@"Snapshot" style:UIAlertActionSytleDefault handler:^(UIAlertAction *action) { 
} 
//create a UIImage to display since it's technically a tableView: 
UIImage *snapshotImage = [UIImage imageNamed:@"snapshot.png"]; 
//add it to the UIAlertAction of your choosing 
[snapshot setValue:snapshotImage forKey:@"image"]; 
... 
[alertC addAction:snapshot]; 
[self presentViewController:alertC animated:YES completion:nil]; 

이전 아이폰 OS 8이 될 수 있습니다 이 방법 :

UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"this is a title" 
                 delegate:self 
               cancelButtonTitle:@"Cancel" 
              destructiveButtonTitle:nil 
               otherButtonTitles:@"one", @"two", nil]; 

[[[action valueForKey:@"_buttons"] objectAtIndex:0] setImage:[UIImage imageNamed:@"yourImage.png"] forState:UIControlStateNormal]; 

[[[action valueForKey:@"_buttons"] objectAtIndex:0] setImage:[UIImage imageNamed:@"yourImage_Highlighted.png"] forState:UIControlStateHighlighted]; 

[actionSheet showInView:self.view]; 

이 점에 대한 몇 가지주의 사항은 H x W demensions가 무엇이든간에 Action Sheet에 삽입 된 행이 얼마나 커질 지에 관계없이 이미지의 크기를 적절히 조정했는지 확인하십시오. 따라서 30x30과 같은 것을 사용하십시오. 또한 이미지 색상은 파란색으로 지정됩니다. 또한이 API는 공개 API로 간주되지 않으므로 앱이 이런 방식으로 승인을 받지만 위험을 감수해야합니다.

+0

감사합니다. 친구가되어 여기에 귀하의 예를 얻지 못했습니다. 문제가 발생했습니다. 그냥 내 행동 촬영 방법을 보여주는 내 질문을 편집, 내 코드에 따라 귀하의 예를 변경하시기 바랍니다 수 어쩌면 내가 그것을 얻을 것인가? 고마워요. –

+0

UIActionSheet가 더 이상 사용되지 않습니다. @nickshmick iOS8을 엄격하게 코딩하고 있습니까? – soulshined

+0

@nickshmick> iOS8 이상 코딩하지 않은 경우 수정 된 답변 참조 – soulshined