2015-01-09 3 views
2

autolayout을 사용하여 게임 메뉴를 만들려고합니다. 정말 화면의 크기에 따라이 크기를 조정하고 싶습니다. 예를 들어, UILabel이 아이폰에 12의 글꼴을 가지고 있다면, 아마도 ipad에서 24 또는 30이어야합니다.iOS - 자동 레이아웃을 사용하여 비례 버튼, 라벨 등 생성

제약 조건을 사용하여 화면 크기에 따라 요소를 더 크게 만들지 만 UIButton의 제목은 단추 크기에 따라 확장되지 않습니다.

크기 클래스를 기반으로 요소를 만들 수 있지만 가장 좋은 방법이라고 생각하십니까? 버튼을 두 번 다시 만들어야 하나의 버튼에서 글꼴 크기를 늘릴 수 있습니까?

는 사실은 그 접근 방식을 시도했다, 그러나 나는 다른 크기의 클래스에 내 버튼을 복사 할 때 모든 관련 제약을 상실 ..

이런 식으로 뭔가를 달성하는 가장 좋은 방법은 무엇. 기기간에 동일한 레이아웃이 필요하지만 동일한 간격으로 배치되지는 않습니다. 실제로 확장 된 것을 필요로합니다.

답변

1

원하는 비율에 맞게 조정하려면 단추의 titleLabel의 글꼴 크기를 설정해야합니다 ... 비례하여 커지는 화면 크기에 대해 12 비율을 사용하는 것이 좋습니다. 예를 들어 화면 크기가 두 배로 큰 (너비의 두 배) 장치는 두 배 큰 글꼴을 갖습니다. screenWidth 여러 버튼을 서브 클래스에서이 필요한 경우 글꼴 크기 (12)

[myButton.titleLabel setFont:[UIFont systemFontOfSize:(12.0f*(self.view.frame.size.width/320.0f))]];

+0

하여 해당 곱 : 귀하의 비율은 320입니다. –

+0

이렇게 프로그래밍 방식으로 수행해야합니다. IB가이 문제를 해결할 수 있습니까? 나는 그것을 당신이 제안하는 방식으로 서브 클래스 할 수 있지만, UILabel, UIButton 등을위한 서브 클래스를 만들어야 만 텍스트를 확대 할 수 있습니다. – hamobi

+0

UILabels (및 단추 제목 레이블과 같이 아마도)에 맞게 너비에 맞게 글꼴 크기를 자동 조정하는 것과 같은 것이 있습니다. 나는 정확한 방법 이름을 기억할 수 없다. 문서를 확인하라. (내가 생각하는 프로그래밍 방식뿐만 아니라 적어도 당신은 서브 클래스가 필요 없어요 (UILabel * 레이블에 [self.view subviews]) {거기에 그것을 적용, 모든 중첩 된 subviews 통해 루프 –

관련 문제