iOS 에서 UIAlertView 경고 상자 구성 요소 사용 튜 토리 얼
초기 화 방법:
- (instancetype)initWithTitle:(NSString *)title message:(NSString *)message delegate:(id /*<UIAlertViewDelegate>*/)delegate cancelButtonTitle:(NSString *)cancelButtonTitle otherButtonTitles:(NSString *)otherButtonTitles, ...;
이 방법 은 제목,내용,에이전트 와 일부 단추 의 제목 을 설정 하여 경고 상 자 를 만 듭 니 다.코드 예 시 는 다음 과 같 습 니 다.UIAlertView*alert=[[UIAlertView alloc]initWithTitle:@"나의 경고 상자"message:@"이것 은 경고 상자 입 니 다"delegate:self cancelButtonTitle:@"취소"otherButtonTitles:@"확인",nil];
[alert show];
효 과 는 다음 과 같 습 니 다:
메모:단추 수가 두 개 를 넘 으 면 다음 과 같이 생 성 됩 니 다.
화면 표시 범 위 를 초과 하면 table View 와 같은 효 과 를 만 듭 니 다.
2.UIAlertView 에 여러 개의 버튼 추가
UIAlertView*alert = [[UIAlertView alloc]initWithTitle:@" "
message:@" :"
delegate:nil
cancelButtonTitle:@" "
otherButtonTitles:@" ", @" ", @" ",nil];
[alert show];
[alert release];
3.사용자 가 클릭 한 단 추 를 어떻게 판단 합 니까?UIAlertView 에 UIAlertView Delegate 의뢰 가 있 습 니 다.이 의뢰 를 계승 하여 클릭 이 벤트 를 실현 합 니 다.
헤더 파일:
@interface MyAlertViewViewController : UIViewController {
}
(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex;
-(IBAction) buttonPressed;
@end
원본 파일:
-(IBAction) buttonPressed
{
UIAlertView*alert = [[UIAlertView alloc]initWithTitle:@" "
message:@" :"
delegate:self
cancelButtonTitle:@" "
otherButtonTitles:@" ", @" ", @" ",nil];
[alert show];
[alert release];
}
(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
NSString* msg = [[NSString alloc] initWithFormat:@" %d !",buttonIndex];
UIAlertView* alert = [[UIAlertView alloc]initWithTitle:@" "
message:msg
delegate:nil
cancelButtonTitle:@" "
otherButtonTitles:nil];
[alert show];
[alert release];
[msg release];
}
"취소","버튼 1","버튼 2","버튼 3"의 색인 buttonIndex 는 각각 0,1,2,3 입 니 다.4.수 동 취소 대화 상자
[alertdismissWithClickedButtonIndex:0 animated:YES];
5.UIAlertView 에 하위 보기 추가UIAlertView 대상 에 하위 보 기 를 너무 추가 하 는 과정 에서 주의해 야 할 부분 이 있 습 니 다.단 추 를 삭제 하면 UIAlerView 보기 의 모든 단 추 를 취소 할 때 전체 디 스 플레이 구조 불 균형 을 초래 할 수 있 습 니 다.버튼 이 사용 하 는 공간 은 사라 지지 않 습 니 다.우 리 는 이 버튼 들 이 진정 으로 삭제 되 지 않 았 고 단지 그 가 보이 지 않 았 을 뿐 이 라 고 이해 할 수 있 습 니 다.UIAlertview 대상 에 텍스트 만 표시 할 경우 메시지 의 시작 부분 에 줄 바 꿈 문자(@")를 추가 하면 단추 아래쪽 과 상단 의 공간 을 균형 있 게 할 수 있 습 니 다.
다음 코드 는 UIAlertview 대상 에 하위 보 기 를 추가 하 는 방법 을 보 여 줍 니 다.
UIAlertView*alert = [[UIAlertView alloc]initWithTitle:@" "
message:nil
delegate:nil
cancelButtonTitle:nil
otherButtonTitles:nil];
[alert show];
UIActivityIndicatorView*activeView = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
activeView.center = CGPointMake(alert.bounds.size.width/2.0f, alert.bounds.size.height-40.0f);
[activeView startAnimating];
[alert addSubview:activeView];
[activeView release];
[alert release];
6.기타 UIAlertView 는 기본적으로 모든 text 를 가운데 로 정렬 합 니 다.입력 상자 와 같은 텍스트 를 왼쪽으로 정렬 하거나 다른 컨트롤 을 추가 하려 면 어떻게 해 야 합 니까?걱정 하지 마 세 요.아이 폰 SDK 는 유연 합 니 다.호출 프로그램 에서 사용 할 수 있 는 delegate 메시지 가 많 습 니 다.할 일 은
(void)willPresentAlertView:(UIAlertView *)alertView
에서 자신의 필요 에 따라 수정 하거나 추가 하면 됩 니 다.예 를 들 어 메시지 텍스트 를 왼쪽 으로 정렬 해 야 합 니 다.아래 의 코드 는 다음 과 같 습 니 다.
-(void) willPresentAlertView:(UIAlertView *)alertView
{
for( UIView * view in alertView.subviews )
{
if( [view isKindOfClass:[UILabel class]] )
{
UILabel* label = (UILabel*) view;
label.textAlignment=UITextAlignmentLeft;
}
}
}
이 코드 는 간단 합 니 다.메시지 상자 가 팝 업 될 때 모든 메시지 상자 대상 을 옮 겨 다 니 며 텍스트 정렬 속성 을 UITextAlignment Left 로 변경 하면 됩 니 다.다른 위 젯 을 추가 하 는 것 도 마찬가지 입 니 다.다음 코드 에 UITextField 두 개 를 추가 합 니 다.
-(void) willPresentAlertView:(UIAlertView *)alertView
{
CGRect frame = alertView.frame;
frame.origin.y -= 120;
frame.size.height += 80;
alertView.frame = frame;
for( UIView * viewin alertView.subviews )
{
if( ![viewisKindOfClass:[UILabelclass]] )
{
CGRect btnFrame = view.frame;
btnFrame.origin.y += 70;
view.frame = btnFrame;
}
}
UITextField* accoutName = [[UITextFieldalloc] init];
UITextField* accoutPassword = [[UITextFieldalloc] init];
accoutName.frame = CGRectMake( 10, frame.origin.y + 40,frame.size.width - 20, 30 );
accoutPassword.frame = CGRectMake( 10, frame.origin.y + 80,frame.size.width -20, 30 );
accoutName.placeholder = @" ";
accoutPassword.placeholder = @" ";
accoutPassword.secureTextEntry = YES;
[alertView addSubview:accoutPassword];
[alertView addSubview:accoutName];
[accoutName release];
[accoutPassword release];
}
메시지 상자 의 고유 한 button 과 label 을 이동 시 키 지 않 으 면 추 가 된 text field 가 가 려 집 니 다.그리고 필요 한 위 젯 을 해당 위치 에 추가 하면 됩 니 다.UIAction Sheet 에 대해 서도 마찬가지 입 니 다.
(void)willPresentActionSheet:(UIActionSheet *)actionSheet
똑 같은 처 리 를 하면 자신 이 원 하 는 화면 을 얻 을 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
View의 레이아웃 방법을 AutoLayout에서 따뜻한 손 계산으로 하면 성능이 9.26배로 된 이야기이 기사는 의 15 일째 기사입니다. 어제는 에서 이었습니다. 손 계산을 권하는 의도는 없고, 특수한 상황하에서 계측한 내용입니다 화면 높이의 10 배 정도의 contentView가있는 UIScrollView 레이아...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.