내 iOS 8 애플리케이션에서 UIActionSheet를 사용하고 있습니다. willPresentActionSheet
대리자 메서드에서 단추 제목의 색을 변경하려고했지만 해당 하위보기로 단추를 인식하지 못합니다. UIActionSheetdelegate가 하위 뷰를 가져 오지 못합니다.
UIActionSheet
건설 :
UIActionSheet *popup = [[UIActionSheet alloc] initWithTitle:@"Select an Option" delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles: nil];
popup.tag = 2;
[popup addButtonWithTitle:@"Add Tag To Chat"];
[popup addButtonWithTitle:@"Remove Tag From Chat"];
[popup addButtonWithTitle:@"Terminate"];
[popup addButtonWithTitle:@"Cancel"];
[popup showInView:self.view];
위임은 다음과 같습니다
- (void)willPresentActionSheet:(UIActionSheet *)actionSheet
{
NSLog(@"%d",[actionSheet.subviews count]);
for (UIView *subview in actionSheet.subviews) {
if ([subview isKindOfClass:[UIButton class]]) {
UIButton *button = (UIButton *)subview;
[button setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
}
}
}
버튼 보이고있다, 나는 클릭하고 조치를 수행합니다. 하지만 count = 0이라고합니다. 왜?
액션 시트는 iOS 7에서와 같이 사용자 정의 할 수 없습니다. 다른 OS 버전에서 단순히 충돌을 일으킬 수있는 방식을 해킹하려고하기 때문에 모든 오픈 소스를 대체하십시오. – Shubhank
iOS 8에서,'UIActionSheet'는 새로운'UIAlertController'로 구현됩니다. 이것은 완전히 다른데 어떤 방식 으로든 사용자 정의 할 수 없습니다. 원하는 것을 지원하는 사용자 정의 구현을 작성하거나 사용해야합니다. – rmaddy
[이것은 가장 좋은 (그리고 사용자 정의 할 수있는) 오픈 소스 작업 시트 중 하나입니다] (https://github.com/fastred/AHKActionSheet) – MendyK