iOS-UIButton(UIEdgeInsets)/설정 button 의 텍스트 와 그림 의 상하 수직 정렬

UIEdgeInsets

typedef struct UIEdgeInsets {
  CGFloat top, left, bottom, right; // specify amount to inset (positive) for each of the edges. values can be negative to 'outset'
} UIEdgeInsets;
UIButton 에는 세 개의 EdgeInsets 설정 이 있 습 니 다.ContentEdgeInsets,titleEdgeInsets,imageEdgeInsets 입 니 다.

@property(nonatomic)     UIEdgeInsets contentEdgeInsets UI_APPEARANCE_SELECTOR; // default is UIEdgeInsetsZero
@property(nonatomic)     UIEdgeInsets titleEdgeInsets;        // default is UIEdgeInsetsZero
@property(nonatomic)     BOOL     reversesTitleShadowWhenHighlighted; // default is NO. if YES, shadow reverses to shift between engrave and emboss appearance
@property(nonatomic)     UIEdgeInsets imageEdgeInsets;        // default is UIEdgeInsetsZero
UIEdgeInsetsMake
안의 네 개의 매개 변 수 는 위의 경계,왼쪽 경계,아래 경계,오른쪽 경계 거 리 를 나타 내 고 기본 값 은 0 이 며 title/image 는 button 의 중앙 에 있 습 니 다.

UIKIT_STATIC_INLINE UIEdgeInsets UIEdgeInsetsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right) {
  UIEdgeInsets insets = {top, left, bottom, right};
  return insets;
}
 self.view.backgroundColor = [UIColor blackColor];
  UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];//button   
  button.frame = CGRectMake(100, 100,90, 90);//button frame
  button.backgroundColor = [UIColor cyanColor];//button     
//  [button setBackgroundImage:[UIImage imageNamed:@"man_64.png"] forState:UIControlStateNormal];
//   UIButton     EdgeInsets   :ContentEdgeInsets、titleEdgeInsets、imageEdgeInsets
  [button setImage:[UIImage imageNamed:@"[email protected]"] forState:UIControlStateNormal];// button  image
  button.imageEdgeInsets = UIEdgeInsetsMake(5,13,21,button.titleLabel.bounds.size.width);//  image button    ( top, left, bottom, right)       ,   -5,  image     5   
  [button setTitle:@"  " forState:UIControlStateNormal];//  button title
  button.titleLabel.font = [UIFont systemFontOfSize:16];//title    
  button.titleLabel.textAlignment = NSTextAlignmentCenter;//  title     
  [button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];//  title           
  [button setTitleColor:[UIColor grayColor] forState:UIControlStateHighlighted];//  title button           
   button.titleEdgeInsets = UIEdgeInsetsMake(71, -button.titleLabel.bounds.size.width-50, 0, 0);//  title button    ( top, left, bottom, right)
//  [button setContentEdgeInsets:UIEdgeInsetsMake(70, 0, 0, 0)];//
//  button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;//  button       。。  content title image    
  [button addTarget:self action:@selector(tap) forControlEvents:UIControlEventTouchUpInside];
  [self.view addSubview:button];
//button     
-(void)tap {
  NSLog(@"tap a button");
  UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"hello" message:@"willingseal" delegate:self cancelButtonTitle:@"ok" otherButtonTitles: nil];
  [alertView show];
}

효과 그림:
제 가 사용 하 는 image 는 64*64 입 니 다.


--
그럼 하나의 button,이 button 의 배경 그림 에 그림 도 있 고 문자 도 있 으 면 됩 니 다.아르 바 이 트 생 을 찾 아서 해 보 세 요.리 얼 하 게...!
이상 은 본문 에서 공유 하 는 iOS-UIButton(UIEdgeInsets)/설정 button 의 텍스트 와 그림 의 상하 수직 가운데 정렬 입 니 다.마음 에 드 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기