2010-12-28 2 views
1

Mac과 iOS 장치 모두에서 시각 장애인이고 Voiceover를 사용하므로 iOS 개발을 시작했지만 마우스를 사용할 수 없습니다. 이 특별한 경우에는 나를 위해 UI를 디자인 할 사람을 얻을 수 없으므로 자신 만의보기에 9 개의 컨트롤을 배치하고 싶습니다. 아무 것도 복잡하지 않고 단지 3 개의 행으로 구성됩니다.Interface Builder를 사용하지 않고 CocoaTouch 컨트롤 좌표 및 크기 지정

인터페이스 빌더에서 마우스를 사용하여 연결을 만들고 라이브러리에서보기로 컨트롤을 드래그해야하므로 직접 할 수 없습니다. 그래서 코드로 UI를 만들었습니다.

는하지만 지금은 컨트롤을 배치 할 : 옆 그 밑에

  • , 두 개의 UILabels 두 UIButtons에의 UITextField와

    • UILabel의.
    • 거기에는 몇 가지 컨트롤이 있습니다. 제 의도는 단순한 UI임을 나타 내기위한 것입니다.

    누구나보기에 이러한 컨트롤을 정렬하는 데 사용할 수있는 팁이나 규칙이 없습니다. 각 컨트롤은 다음과 유사한 구문을 사용하여 초기화 : 내 머리에서 수학을하고 medioca 결과와 X/Y/너비/높이 값의 합리적인 세트를 얻으려고 시간을 보냈습니다

    inputField = [[UITextField alloc] initWithFrame:CGRectMake(x, y, width, height)]; 
    

    . 이전에이 작업을 수행 한 다른 사람들의 팁은 크게 감사 할 것입니다.

  • +0

    팁 주셔서 감사합니다. 아아아는 나를 위해 작동하지 않을 것입니다. 문제는 인터페이스 빌더를 처음부터 사용할 수 없다는 것입니다 :-) – Saqib

    답변

    0

    결국 다양한 사람들과 이야기하고 더 자세히 조사한 후에 더 나은 솔루션을 제안했지만 여전히 최적의 해결책은 아닙니다. 내가 부족한 핵심 정보는 UILabel 객체의 SizeToFit 메시지입니다.

    이제 모든 레이블을 만들고 텍스트를 설정 한 다음 SizeToFit을 사용하여 너비/높이를 자동으로 계산합니다. 버튼의 경우 레이블을 만들고 단추의 제목으로 레이블을 설정합니다.

    다음, 나는 프로그래밍 방식 여백/패딩에 대한 레이블과 값을 기준으로 모든 TextField의에 대한 폭을 계산 :

    • 은 가정하자 나는 옆에있는 텍스트 필드와 레이블을합니다.
    • 레이블을 만들고 SizeToFit을 사용합니다.
    • 나는 변수를 마진 = 10 및 패딩 = 5 * 마진 myLabel.frame.size.width 패딩
    • 다음 텍스트 필드의 폭이 TOTALWIDTH-2 (수 이러한 해야지 무엇을 조사 할 것)
    • 을 정의 x 값이 simly margin이고 텍스트 필드의 x 값이 margin + myLabel.frame.size.width + padding입니다.
    • 현재 텍스트 필드의 높이를 20으로 하드 코딩하고 있습니다. 이것은 세련 될 것이다.

    다른 사람들이이 접근법을 개선 한 경우이를 커뮤니티 위키로 만들었습니다.

    0

    일반적으로 빈 IB보기를 사용하여 정확한 좌표를 얻습니다. 올바른 #을 얻고 코드에 연결하십시오.

    관련 문제