iOS 의 다양한 UI 컨트롤 속성 설정 예시 코드

8847 단어 iosui컨트롤

//        ,    ui    
- (void)viewDidLoad {
 [superviewDidLoad];
 // Do any additional setup after loading the view.
 //   UILabel             
 UILabel *lb = [[UILabelalloc]initWithFrame:CGRectMake(0,20,300,200)];
 //    
 lb.text =@"label         ui story          i              ";
 //     
 lb.backgroundColor = [UIColorcolorWithRed:0green:191.0/255.0blue:243.0/255.0alpha:1.0];
 //      
 lb.textColor = [UIColorwhiteColor];
 //    ,    
 lb.font = [UIFontsystemFontOfSize:25];
 NSLog(@"      :%@",lb.font.familyName);
 //        
 NSArray *arrFonts = [UIFontfamilyNames];
 NSLog(@"      :%@",arrFonts);
 //    
 lb.textAlignment =NSTextAlignmentJustified;
// NSTextAlignmentLeft  = 0, //    ,  
// NSTextAlignmentCenter = 1, //    
// NSTextAlignmentRight  = 2, //    
// NSTextAlignmentJustified = 3, // Fully-justified. The last line in a paragraph is natural-aligned.
// NSTextAlignmentNatural = 4, // Indicates the default alignment for script

 //    
 lb.lineBreakMode =NSLineBreakByCharWrapping;
// NSLineBreakByWordWrapping = 0, //                  (          )
// NSLineBreakByCharWrapping,//              
// NSLineBreakByClipping,// Simply clip
// NSLineBreakByTruncatingHead,// Truncate at head of line: "...wxyz"
// NSLineBreakByTruncatingTail,// Truncate at tail of line: "abcd..."
// NSLineBreakByTruncatingMiddle// Truncate middle of line: "ab...yz"

 //    ,0      ,         
 lb.numberOfLines =0;
 //   
 lb.layer.cornerRadius =30;
 //     ,         
 lb.clipsToBounds =YES;
 //     ,  ,   layer     CGColor  
 lb.layer.borderColor = [[UIColorredColor]CGColor];
 lb.layer.borderWidth =1.0;

 // label      ,     
 [self.viewaddSubview:lb];
}

Label 의 첫 줄 을 들 여 쓰 는 것 은 골 치 아 픈 문제 입 니 다.현재 IOS 6 에는 attributedText 의 속성 만 있 습 니 다.사용자 정의 줄 높이 에 도달 할 수 있 고 첫 줄 의 들 여 쓰기,각종 줄 거리 와 간격 문제 도 있 습 니 다.다음은 두 개의 Label 이 고,하 나 는 UserName 이 며,다른 하 나 는 Content 텍스트 다 중 줄 정보 입 니 다.
태그 만 들 기

@interface ViewController : UIViewController
@property ( weak , nonatomic ) IBOutlet UILabel *usernameLabel
@property ( weak , nonatomic ) IBOutlet UILabel *contentLabel;
@end
보기 전시 층

- ( void )viewDidLoad {
self . usernameLabel . text = @"   Jordan CZ: " ;
self . usernameLabel . adjustsFontSizeToFitWidth = YES ;
[ self . usernameLabel sizeToFit ];
  self . contentLabel . text = @"                            。。。。。。。" ;
self . contentLabel . adjustsFontSizeToFitWidth = YES ;
self . contentLabel . adjustsLetterSpacingToFitWidth = YES ;
[ self resetContent ];
}
적응 계산 간격

- ( void )resetContent{
NSMutableAttributedString *attributedString = [[ NSMutableAttributedString alloc ]initWithString : self . contentLabel . text ];
NSMutableParagraphStyle *paragraphStyle = [[ NSMutableParagraphStyle alloc ]init ];
paragraphStyle. alignment = NSTextAlignmentLeft ;
paragraphStyle. maximumLineHeight = 60 ; //      
paragraphStyle. lineSpacing = 5 ; //       
[paragraphStyle setFirstLineHeadIndent : self . usernameLabel . frame . size .width + 5 ]; //               5   
[attributedString addAttribute : NSParagraphStyleAttributeName value:paragraphStyle range : NSMakeRange ( 0 , [ self . contentLabel . text length ])];
self . contentLabel . attributedText = attributedString;
[ self . contentLabel sizeToFit ];
}
UITextView 사용 설명

//         
 UITextView *textview = [[UITextView alloc] initWithFrame:CGRectMake(20, 10, 280, 30)];
 textview.backgroundColor=[UIColor whiteColor]; //   
 textview.scrollEnabled = NO; //                 ,   “YES”
 textview.editable = YES;  //        ,   “YES”
 textview.delegate = self;  //          
 textview.font=[UIFont fontWithName:@"Arial" size:18.0]; //           ;
 textview.returnKeyType = UIReturnKeyDefault;//return    
 textview.keyboardType = UIKeyboardTypeDefault;//    
 textview.textAlignment = NSTextAlignmentLeft; //            
 textview.dataDetectorTypes = UIDataDetectorTypeAll; //           (     、  、   )
 textview.textColor = [UIColor blackColor];
 textview.text = @"UITextView  ";//         
 [self.view addSubview:textview];
UITextView 의 프 록 시 방법 은 다음 과 같 습 니 다.

//      
- (BOOL)textViewShouldBeginEditing:(UITextView *)textView;

//      
- (BOOL)textViewShouldEndEditing:(UITextView *)textView;

//    
- (void)textViewDidBeginEditing:(UITextView *)textView;

//    
- (void)textViewDidEndEditing:(UITextView *)textView;

//          
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString*)text;

//        
- (void)textViewDidChange:(UITextView *)textView;

//      
- (void)textViewDidChangeSelection:(UITextView *)textView;

입력 한 텍스트 의 내용 높이 에 맞 게 컨트롤 을 해 야 할 때 가 있 습 니 다.textView Did Change 의 프 록 시 방법 에 컨트롤 크기 를 조정 하 는 프 록 시 를 추가 하면 됩 니 다.

- (void)textViewDidChange:(UITextView *)textView{
 //       
 CGSize constraintSize;
 constraintSize.width = textView.frame.size.width-16;
 constraintSize.height = MAXFLOAT;
 CGSize sizeFrame =[textView.text sizeWithFont:textView.font
 constrainedToSize:constraintSize
 lineBreakMode:UILineBreakModeWordWrap];

 //    textView   
 textView.frame =CGRectMake(textView.frame.origin.x,textView.frame.origin.y,textView.frame.size.width,sizeFrame.height+5);
}

입력 문자 의 길이 와 내용 을 제어 하고 다음 에이전트 방법 을 호출 하여 실현 할 수 있 습 니 다.

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString*)text
{
 if (range.location>=100)
 {
 //         
 return NO;
 }
 if ([text isEqualToString:@"
"]) { // return NO; } else { return YES; } }
UITextView 키보드 종료 방법
아이 폰 의 소프트 키 보드 는 자체 적 으로 가지 고 있 는 키보드 키 가 없 기 때문에 키 보드 를 탈퇴 하려 면 스스로 실현 해 야 한다.다음 과 같은 몇 가지 방식 이 있다.
1)프로그램 에 네 비게 이 션 바 가 있다 면 네 비게 이 션 바 에 Done 단 추 를 하나 더 추가 하여 키 보드 를 종료 할 수 있 습 니 다.당연히 먼저 UITextView Delegate 를 확인 해 야 합 니 다.

- (void)textViewDidBeginEditing:(UITextView *)textView {

 UIBarButtonItem *done = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
 target:self
 action:@selector(dismissKeyBoard)];

 self.navigationItem.rightBarButtonItem = done;

 [done release];
 done = nil;

}

- (void)textViewDidEndEditing:(UITextView *)textView { 
 self.navigationItem.rightBarButtonItem = nil; 
}

- (void)dismissKeyBoard { 
 [self.textView resignFirstResponder]; 
}

2)텍스트 뷰 에서 리 턴 키 를 사용 하지 않 으 면 리 턴 키 를 키보드 에서 나 오 는 응답 키 로 사용 할 수 있다.
코드 는 다음 과 같 습 니 다:

-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString*)text
{
 if ([text isEqualToString:@"
"]) { [textView resignFirstResponder]; return NO; } return YES; }
3)그리고 다른 로 딩 키보드 위 에서 로그아웃 할 수 있 습 니 다.예 를 들 어 팝 업 키보드 위 에 view 를 추가 하여 키 보드 를 종료 하 는 Done 단 추 를 놓 을 수 있 습 니 다.
코드 는 다음 과 같 습 니 다:

 UIToolbar * topView = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320,30)];
 [topView setBarStyle:UIBarStyleBlack];

 UIBarButtonItem *btnSpace = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
 target:self
 action:nil];

 UIBarButtonItem *doneButton = [[UIBarButtonItem alloc]initWithTitle:@"Done"
 style:UIBarButtonItemStyleDone
 target:self
 action:@selector(dismissKeyBoard)];

 NSArray * buttonsArray = @[btnSpace, doneButton];;
 [doneButton release];
 [btnSpace release];
 [topView setItems:buttonsArray];
 [textView setInputAccessoryView:topView];//        topView
 [topView release];
 topView = nil;

-(IBAction)dismissKeyBoard
{
 [tvTextView resignFirstResponder];
}
총결산
iOS 의 다양한 UI 컨트롤 속성 설정 에 관 한 글 을 소개 합 니 다.iOS 의 다양한 UI 컨트롤 속성 설정 에 관 한 내용 은 이전 글 을 검색 하거나 아래 글 을 계속 찾 아 보 세 요.앞으로 도 많은 응원 부탁드립니다!

좋은 웹페이지 즐겨찾기