iOS-UIButton(UIEdgeInsets)/설정 button 의 텍스트 와 그림 의 상하 수직 정렬
3821 단어 iosuibuttonUIEdgeInsets
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 의 텍스트 와 그림 의 상하 수직 가운데 정렬 입 니 다.마음 에 드 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Swift의 패스트 패스Objective-C를 대체하기 위해 만들어졌지만 Xcode는 Objective-C 런타임 라이브러리를 사용하기 때문에 Swift와 함께 C, C++ 및 Objective-C를 컴파일할 수 있습니다. Xcode는 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.