2009-09-09 4 views
3

UISlider와 같은 컨트롤이 필요했지만 하나 대신 두 개의 엄지 손가락을 사용하여 하나의 값 대신 범위를 지정할 수있었습니다. 나는 똑같은 것을 찾는 다른 사람들을 보았고 새로운 컨트롤을 만드는 것에 대한 제안은 내 머리 위로 끝났다.UIViewController 하위 클래스를 사용하는 사용자 정의 iPhone 컨트롤

그래서 저는 펜촉에서 원하는 것을 설정하고 그 동작을 처리하기 위해 뷰 컨트롤러를 생성했습니다. 사실이 방법으로 2 가지를 받아 들일 수 있습니다.

1) 대신 드래그 정상 IB 컨트롤 같은 다른 펜촉으로 낙하 ... ...이 같은 코드를 통해해야 할 또 다른 펜촉으로

MaxMinSliderViewController *feeMaxMinSlider = 
    [[MaxMinSliderViewController alloc] init]; 
[self.view addSubview:feeMaxMinSlider.view]; 
feeMaxMinSlider.view.frame = CGRectMake(20, 20, 280, 54); 

을 내 '사용자 지정 컨트롤'을로드하려면 . 이 작업을 수행 할 수있는 쉬운 방법이 있습니까?

2)이 모든 일을하는 것에 대한 나의 독서에서, 마치 UIViewController 대신에 UIView를 서브 클래 싱하는 (올바른 방법을 위해) 것으로 생각되는 것처럼 보입니다. UIView를 올바르게 설정하지 못했습니다.

생각하십니까?

+0

답변을 찾았습니까? – JoePasq

+0

불행히도 아니지만, 그 이후 XCode와 iOS의 여러 버전이 있었기 때문에 아마 추가되었을 것입니다. 그래도 의심. – rob5408

답변

3

일반 IB 컨트롤과 같은 다른 펜으로 드래그 앤 드롭하는 대신 여기에 할 수있는 쉬운 방법이 있습니까?

아니요! 오직 an incredibly hard way!

+0

"엄청나게 어려운 방법"에 대한 메가 투표 HA HA 좋은 물건. – Jordan

2

클래스를 UIViewController 대신 사용자 정의 UIView로 변환한다고 가정하면 인터페이스 작성기에서 사용자 정의 컨트롤의 init 메서드 종류에 따라이 인터페이스를 매우 쉽게 할 수 있습니다.

인터페이스 빌더 내에서 일반 오래된 UIView를 라이브러리 창에서보기로 드래그 앤 드롭하고 필요에 따라 위치/크기를 지정하십시오.

UIView를 선택한 상태에서 Inspector 창 (작은 (i) 아이콘이있는 탭)의 ID 탭으로 전환하고 UIView에서 사용자 정의 클래스의 이름으로 변경하십시오. 이로 인해 비어있는 UIView 대신 NIB로드 될 때 사용자 지정 클래스 인스턴스가 인스턴스화됩니다.

정상적으로 IBOutlet 등에 뷰를 연결할 수 있습니다.

이 방법의 장점은 시각적으로 컨트롤을 배치하고 크기를 지정할 수 있다는 것입니다. 그러나 사각형으로 만 나타나며 컨트롤의 추가 속성을 그래픽으로 구성 할 수는 없습니다 인터페이스 빌더가 추가 지원을 제공하는 UIButton 또는 비슷한 컨트롤을 사용합니다.

나는 시각적 인 사상가가 아니기 때문에 많은 프레임을 포함하는 코드 섹션을 읽을 때 어떻게 보일지 내 마음 속에서 생각하기가 어렵다.이 기술은 훌륭하다. CGRectMake (20, 20, 280, 54) 등. 시각적으로 마우스로 할 수 있다는 것이 나에게 훨씬 좋다.

+0

감사합니다. 나는 그것을 줄 것이다. – rob5408

0

인터페이스 빌더 플러그인 프로그래밍 가이드이 있지만 iPhone이 아닌 Mac OS X 만 언급합니다.

또한 XCode 3.2.1부터는 Mac OS X IB 플러그인을 만들기위한 새로운 프로젝트 템플릿 만 있습니다. iPhone (Cocoa Touch) 용 프로젝트 템플릿이 없습니다. 그래서 내 생각 엔 아이폰에는 적용 할 수 없다.