iPhone SDK, UIButton, 이미지 버튼과 글자 위치 조정.


버튼에 이미지와 글자를 같이 사용하려면,
이미지는 backgroundImage로 빼는게 맞는 것 같다.
버튼 image에 이미지를 넣으면 contents에 image와 title이 존재하므로 아래에서 보여줄 글자 위치 조정이 어려워 질 수 있다.
예를들어서 버튼 image에 이미지를 넣으면 글자가 이미지의 오른쪽으로 밀려서 마진을 맞출때 left 에 -100.0f 와 같이 마이너스 값을 넣어야 해서 위치 조정이 복잡해 진다.


#define RGBA(r, g, b, a) [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:a]


UIButton *aButton=[UIButton buttonWithType:UIButtonTypeCustom];
[aButton addTarget:self action:@selector(aBtnDownAction:) forControlEvents:UIControlEventTouchDown];
[aButton addTarget:self action:@selector(aBtnCancelAction:) forControlEvents:UIControlEventTouchDragExit];
[aButton addTarget:self action:@selector(aBtnUpAction:) forControlEvents:UIControlEventTouchUpInside];
aButton.frame=CGRectMake(110.0f, 129.0f, 100.0f, 57.0f);
aButton.contentVerticalAlignment=UIControlContentVerticalAlignmentTop;
aButton.contentHorizontalAlignment=UIControlContentHorizontalAlignmentLeft;
[aButton setTitle:@"버튼명" forState:UIControlStateNormal & UIControlStateHighlighted & UIControlStateSelected];
[aButton setTitleColor:RGBA(136, 136, 136, 1) forState:UIControlStateNormal & UIControlStateHighlighted & UIControlStateSelected];
[aButton.titleLabel setFont:[UIFont fontWithName:@"AppleGothic" size:15.0f]];
aButton.adjustsImageWhenDisabled=YES;
aButton.adjustsImageWhenHighlighted=YES;
aButton.backgroundColor=[UIColor clearColor];
[aButton setTitleEdgeInsets:UIEdgeInsetsMake(29.0f, 22.0f, 0.0f, 0.0f)];
[aButton setBackgroundImage:[UIImage imageNamed:@"abutton_normal"] forState:UIControlStateNormal];
[aButton setBackgroundImage:[UIImage imageNamed:@"abutton_pressed"] forState:UIControlStateHighlighted];
[self.view addSubview:aButton];

위 코드에서

aButton.contentVerticalAlignment=UIControlContentVerticalAlignmentTop;
aButton.contentHorizontalAlignment=UIControlContentHorizontalAlignmentLeft;

컨텐츠는 title 이 되고 top, left 정렬이 된다.
기본으로는 center 정렬인 것 같다.

다음을 이용해서

[aButton setTitleEdgeInsets:UIEdgeInsetsMake(29.0f, 22.0f, 0.0f, 0.0f)];

안쪽의 마진으로 위치를 조정할 수 있다.
인자는 (top, left, bottom, right) 이다.

Advertisements

iPhone SDK, UIButton, 이미지 버튼과 글자 위치 조정.”에 대한 2개의 응답

  1. button 안에서 글자에 대한 정렬을 어떻게 할지 궁금했는데, 게시물을 보고 쉽게 적용했습니다.
    확실히, UI는 어렵네요..
    그럼 수고하세요. 잘 보고 갑니다.

    좋아하기

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중