2012-12-06 3 views
1

Rubymotion을 사용하여 iOS 앱을 만들고 있습니다. 보기 중 하나에서 UIsegmentedcontroller를 사용하고 있으며 정상적으로 작동합니다.UISegmentedControll의 스타일을 지정하는 방법은 무엇입니까?

어떻게 사용자 정의 할 수 있습니까? 전체 배경 (이 작동하지 않습니다) 및 각 단추 (이 작동)에 대한 사용자 지정 배경 이미지를 사용해야합니다.

이 내 현재 코드입니다 :

options = ["Selected","Unselected"] 
    segment = UISegmentedControl.alloc.initWithItems(options) 
    segment.addTarget(self, action: :'open:', forControlEvents:UIControlEventValueChanged) 
    segment.frame = [[0, 0],[320, 40]] 
    segment.segmentedControlStyle = 7 
    segment.selectedSegmentIndex = 0 
    segment.setImage(button, forSegmentAtIndex:0) 
    segment.setImage(button2, forSegmentAtIndex:1) 

는이 코드로 시도 :

segment.apperance.setBackgroundImage(button, forState:UIControlStateNormal , forBarMetrics:UIBarMetricsDefault) 

segment.setBackgroundImage(button, forState:UIControlStateSelected , forBarMetrics:UIBarMetricsDefault) 

하지만 내가 할 경우이 오류가 얻을 :

undefined method `appearance' for #<UISegmentedControl:0x9655a90> (NoMethodError) 

나도 모양없이 시도하지만 내가 가지고 :

undefined method `setBackgroundImage' for #<UISegmentedControl:0x946db70> (NoMethodError) 

업데이트

나는이 시도하고 어떤 이미지가 배경에 표시되지 않습니다 :

segment.setBackgroundImage(background, forState:UIControlStateNormal, barMetrics:UIBarMetricsDefault) 

답변

2

사용 setBackgroundImage:forState:barMetrics:

주어진 상태 및 막대 메트릭에 대한 배경 이미지를 설정합니다.

당신은 Apple.Developer documentation

샘플 코드에 상세 정보를 볼 수 있습니다

here

[[UISegmentedControl appearance] setDividerImage:segmentUnselectedUnselected forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 
[[UISegmentedControl appearance] setDividerImage:segmentSelectedUnselected forLeftSegmentState:UIControlStateSelected rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 
[[UISegmentedControl appearance] setDividerImage:segUnselectedSelected forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateSelected barMetrics:UIBarMetricsDefault]; 

[[UISegmentedControl appearance] setBackgroundImage:segmentUnselected forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 
[[UISegmentedControl appearance] setBackgroundImage:segmentSelected forState:UIControlStateSelected barMetrics:UIBarMetricsDefault]; 
+0

감사에서 촬영! 이것을 시도했는데 (업데이트 된 질문 참조) 이미지가 배경에 표시되지 않습니다. 단추 주위에 테두리를 제거하는 방법이 있습니까? –