2012-02-22 5 views
0

상단에 NavigationBar가 있고 가운데에 TableView가 있고 아래쪽에이 종류의 TabBar를 만들고 싶습니다. 내부 작은 사각형을 드래그하면 TableView의 내용을 변경하려고합니다. 그래서 기본적으로 나는 그것이 작은 구성 요소마다 내보기를 바꾸는 (그러나 NavigationBar를 변경하지 않고) 일반 TabBar처럼 행동하기를 원합니다.iOS 5 용 "끌기"가있는 TabBar

어떻게 접근 할 수 있을까요? iOS 응용 프로그램을 개발하는 데있어 새로운 점이 있습니다. 감사합니다

나는 이런 식으로 뭔가를 원하는 :

enter image description here

+2

왜 탐색 모음을 변경하려는 wouldnt한다? 나는 당신이가는 길은 각각의 탭이 고유 한 NavigationController를 갖는 TabBar 응용 프로그램을 만드는 것이라고 생각합니다. 탭을 변경하면 다른 테이블 뷰가 표시됩니다. 하나는 사용하지 말고 내용을 변경하십시오. – pmk

+0

예, 다른 표보기를 표시 하겠지만, 내 탭 표시 줄에 해당 형식 (이전 HTC Sense와 비슷한 점, 드래그하거나 클릭하여 화면을 변경하는 기능)이 필요합니다. – Cosmin

답변

1

나는 그 일을하는 가장 좋은 방법은 사용자 정의 구성 요소를 만드는 것입니다 생각합니다. UITabBar에는 "드래그 효과"가 없습니다.

당신이해야 할 일은 5 개의 UIButtons를 만드는 UIView와 UIButton의 크기가 될 하나의 "모바일"UIView를 서브 클래 싱하는 것입니다.

물론이 모든 구성 요소에 대한 이미지가 필요합니다 (하지만 그렇게하기는 어렵지 않습니다).

이 하위 클래스 내에서 사용자 정의 동작을 코딩 할 수 있습니다.

+0

정확히 5 개의 UIButtons 버튼을 만들어야하는 이유는 무엇입니까? – Cosmin

+0

UIButton 유형에 대해 묻는다면 UTButton에 대상 및 선택기를 추가 할 수있는 것처럼 사용자 정의 슬라이더를 클릭 가능하게 만들었 기 때문에 그렇게 말했습니다. – Ganzolo

+0

숫자는 5,4,3이 될 수 있습니다.나는 UITabBar가 최대 5 개의 섹션을 가지고 있기 때문에 5라고 말했다. – Ganzolo

0

편집 : 드래그 효과를 완전히 잊어 버렸습니다. 당신은 거기에 가지지 않을 것입니다. 하지만 적어도 비슷하게 보일 것입니다 ...

iOS5를 타겟팅하는 경우 UISegmentedControl을 사용하고 이미지와 함께 스타일을 지정할 수 있습니다.

당신은 기본적으로 (- 선택 선택 해제 - 선택되지 않은 선택되지 않은 - -, 선택 선택 선택 선택되지 않은) 가능한 각 상태에 대한 이미지를 만들 User Interface Customization in iOS 5 tutorial

에서 "사용자 정의 UISegmentedControl"섹션에서 살펴보고 사용 새로운 UIAppearance 사용자 정의 모양을 만드는 방법.

UIImage *segmentSelected = 
    [[UIImage imageNamed:@"segcontrol_sel.png"] 
     resizableImageWithCapInsets:UIEdgeInsetsMake(0, 15, 0, 15)]; 
UIImage *segmentUnselected = 
    [[UIImage imageNamed:@"segcontrol_uns.png"] 
     resizableImageWithCapInsets:UIEdgeInsetsMake(0, 15, 0, 15)]; 
UIImage *segmentSelectedUnselected = 
    [UIImage imageNamed:@"segcontrol_sel-uns.png"]; 
UIImage *segUnselectedSelected = 
    [UIImage imageNamed:@"segcontrol_uns-sel.png"]; 
UIImage *segmentUnselectedUnselected = 
    [UIImage imageNamed:@"segcontrol_uns-uns.png"]; 

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

[[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]; 
+0

그래, 불행히도 나는 드래그 효과도 원해. – Cosmin

0

그래서 기본적으로 유

3 NSMutable 배열을 생성하고 데이터를 입력, 각 세그먼트에 테이블을 다시로드 클릭 된합니다.

이런 일

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { int returnValue = 0; 
    if(segment.tag == 0)  returnValue = [arrOne count]-1;  else 
    if(segment.tag == 1)  returnValue = [arrTwo count]-1;   else 
    if(segment.tag == 2)   returnValue = [arrTwo count]-1;   return 
    returnValue; 

    } 



- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if(segment.tag == 0) 
     cell.text = [arrOne objectAtIndex:indexPath.row]; 
    else if(segment.tag == 1) 
     cell.text = [arrTwo objectAtIndex:indexPath.row]; 
     else if(segment.tag == 2) 
      cell.text = [arrThree objectAtIndex:indexPath.row]; 
} 

및 프레스 각 세그먼트를 할 arrOne, arrTwo 및 arrThree,

를 가정 :

[tblObject reloadData]; 
+0

저는 이해합니다. 그러나 사용자 정의 구성 요소를 만드는 방법에 더 관심이 있습니다. 드래그 효과를 원합니다. – Cosmin