2014-05-18 3 views
0

NSString에서 UIButton을 만들고 싶습니다. 나는 하나의 문자열을 가지고있다. @ "First Button" 먼저 너비 픽셀의 크기를 얻고 하나를 만든 다음에이 문자열에 따르면 그러나 나는 그것에 대해 모른다.제목 문자열에서 버튼을 만드는 방법

나를 안내 해주세요.

+0

가능한 중복 설정 생성보다

NSString someText = @"some Text"; CGSize constraintSize = CGSizeMake(youMaxWidthForButton, youMaxHeightForButton); CGRect labelSize = [someText boundingRectWithSize:constraintSize options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:17.0f]} context:nil]; 

를 사용하여 텍스트의 크기를 얻을 수 있습니다 [NSString의 크기를 얻는 법] (http://stackoverflow.com/questions/2669063/how-to-get-the-size-of-a-nsstring) –

+0

@ 루카스 그 대답은 지금은 사용되지 않는 방법을 사용하기 때문에 최고의 복제본이 아닙니다. – rmaddy

+0

@rmaddy 괜찮습니다. 이것을 참고하겠습니다. http://stackoverflow.com/a/18897897/426959 –

답변

2

당신은 sizeWithAttributes 사용 NSStringCGSize를 얻을 수 있습니다 (우리가 사용하기 전에 sizeWithFont을하지만 지금 iOS 7과 방법을 더 이상 사용되지 않습니다) 다음이 나를 위해 잘 작동

NSString *string = @"First Button"; 

CGSize size = [string sizeWithAttributes: 
       @{NSFontAttributeName: 
        [UIFont systemFontOfSize:27.0f]}]; 
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
button.frame = CGRectMake(0, 50, size.width, size.height); 
button.titleLabel.textColor = [UIColor blackColor]; 
[button setTitle:string forState:UIControlStateNormal]; 
button.backgroundColor = [UIColor redColor]; 
[self.view addSubview:button]; 

검토와 같은 크기에 따라 UIButton을 만들 수 있습니다. 희망이 도움이 될 것입니다.

+0

질문에서 중요한 부분 인 문자열 크기를 결정하는 방법을 생략했습니다. – rmaddy

+0

그래, 사용할 수 있습니다 sizeWithAttributes 업데이트 대답을 검토 – Buntylm

+0

내 친구이 방법은 ios6에서 작동합니까? – user3599133

1

먼저 당신은 당신이 당신의 UIButton

UIButton *button = [[UIButton alloc]initWithFrame:labelSize]; 

마침내 버튼 제목을의

button.titleLabel.text = someText; 
+0

내 친구는 무엇이 constraintSize입니까? – user3599133

+0

너비와 높이의 최대 값입니다. 예를 들어 당신의 단추가 세로 모드에서 아이폰의 너비보다 커지는 것을 원하지 않는다면, 너는 최대 너비에'320'을 사용합니다 – Argent

관련 문제