C/Objective C/ios2012.07.22 23:29

- 아이폰의 Tab Bar 을 이용하여 여러개의 뷰를 한 화면에서 전환하면서 확인 할 수 있는 기능이다.


- 화면 디자인


- Tab Bar Controller 만들기 순서

1. Xcode 실행
2. Tabbed Application
3. Project Name : “TabbedTest” 

4. AppDelegate.h 파일 편집

5. AppDelegate.m 파일 편집

@interface AppDelegate : UIResponder <UIApplicationDelegate> { NSInteger myCount;

}
@property (nonatomic, assign) NSInteger myCount; @property (strong, nonatomic) UIWindow *window; @end

#import "AppDelegate.h"
@implementation AppDelegate
@synthesize myCount;
@synthesize window = _window;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{ myCount = 0; return YES;

}

6. storyboard의 First View 위에 Label 위치
7. Assistant Editor로 Label 드래그 - “myLabel” 입력 

8. storyboard의 Second View 위에 Label 위치
9. Assistant Editor로 Label 드래그 - “myLabel” 입력 

10. FirstViewController.m 파일 편집

#import "FirstViewController.h" #import "AppDelegate.h" @implementation FirstViewController @synthesize myLabel

- (void)viewWillAppear:(BOOL)animated {

AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; appDelegate.myCount++;
myLabel.text = [NSString stringWithFormat:@"<%d>", appDelegate.myCount];

[super viewWillAppear:animated]; }

11. SecondViewController.m 파일 편집

#import "SecondViewController.h" #import "AppDelegate.h" @implementation SecondViewController @synthesize myLabel

- (void)viewWillAppear:(BOOL)animated {

AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; appDelegate.myCount++;
myLabel.text = [NSString stringWithFormat:@"<%d>", appDelegate.myCount];

[super viewWillAppear:animated]; }

12. storyboard에 View Controller 위치
13. View Controller 위에 Tab Bar Item 위치
14. Tab Bar Controller에서 Control 키를 누른 채 View Controller로 드래그 15. Relationship - View Controllers 선택
16. View Controller의 Tab Bar Item 선택 – Command+Option+4
17. Title - “Third”로 변경
18. Command+N – Objective-C class 선택
19. Class - “Third”, Subclass of - “UIViewController” 선택
20. storyboard에 View Controller 선택 – Command+Option+3
21. Class – ThirdViewController 선택
22. storyboard의 ThirdViewController에 Label 위치
23. Assistant Editor로 Label 드래그 - “myLabel” 입력
24. ThirdViewController.m 파일 편집

#import "ThirdViewController.h" #import "AppDelegate.h" @implementation ThirdViewController @synthesize myLabel

- (void)viewWillAppear:(BOOL)animated {

AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; appDelegate.myCount++;
myLabel.text = [NSString stringWithFormat:@"<%d>", appDelegate.myCount];

[super viewWillAppear:animated]; }


- 실행 화면


신고
Posted by Namseungil
JAVA/Android2012.01.05 19:00
- 안드로이드에서 제공하는 Tavhost를 이용하여 손쉽게 Tab화면을 구현 할 수 있다.
- 각각의 화면 클래스들을 Tab버튼을 누를때 마다 변환되며 사용자에게 제공 할 수 있다.

- Java 소스
public class Ex05_TabTestActivityActivity extends TabActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.main);
        TabHost tabhost = getTabHost();
        tabhost.addTab(tabhost.newTabSpec("tag").setIndicator("Hello").setContent(new Intent(Ex05_TabTestActivityActivity.this, Hello.class)));
        tabhost.addTab(tabhost.newTabSpec("tag1").setIndicator("연락처추가").setContent(new Intent(this, Ex04_Registration.class)));
        tabhost.addTab(tabhost.newTabSpec("tag2").setIndicator("계산기").setContent(new Intent(this, Ex05_Calulator.class)));
        tabhost.addTab(tabhost.newTabSpec("tag2").setIndicator("계산기").setContent(new Intent(this, Ex05_Calulator.class)));
        tabhost.addTab(tabhost.newTabSpec("tag2").setIndicator("계산기").setContent(new Intent(this, Ex05_Calulator.class)));
    }


-실행화면
 

신고
Posted by Namseungil
JAVA/Android2012.01.03 10:37
- LinearLayout과 FrameLayout 으로 CustomTab을 만드는 간단한 예제이다.
- Framelayout으로 같은 화면에 겹쳐 나오는 방법을 사용해 여러 view를 사용하고 있다는 느낌을 받을수 있다.
- 일반적인 Tab을 사용하면 화면 상단배치가 되는데, CustomTab 방식을 이용해 화면 하단배치해 사용자를 배려한다.

-Java 소스 

public class Ex05_CustomTabActivity extends Activity implements OnClickListener {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button b1=(Button)this.findViewById(R.id.button1);
        b1.setOnClickListener(this);
        Button b2=(Button)this.findViewById(R.id.button2);
        b2.setOnClickListener(this);
        Button b3=(Button)this.findViewById(R.id.button3);
        b3.setOnClickListener(this);
    }

public void onClick(View arg0) {
// TODO Auto-generated method stub
LinearLayout a1 = (LinearLayout)this.findViewById(R.id.number1);
a1.setVisibility(View.INVISIBLE);
LinearLayout a2 = (LinearLayout)this.findViewById(R.id.number2);
a2.setVisibility(View.INVISIBLE);
LinearLayout a3 = (LinearLayout)this.findViewById(R.id.number3);
a3.setVisibility(View.INVISIBLE);
switch(arg0.getId()){
case R.id.button1:
a1.setVisibility(View.VISIBLE);
break;
case R.id.button2:
a2.setVisibility(View.VISIBLE);
break;
case R.id.button3:
a3.setVisibility(View.VISIBLE);
break;
}
}


-xml 소스

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <FrameLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:orientation="vertical" >

        <LinearLayout
            android:id="@+id/number1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical"
            android:visibility="visible" >

            <TextView
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:text="이거원 인터넷이안되니!!" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/number2"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical"
            android:visibility="invisible" >

            <TextView
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:text="정말정말정말!!" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/number3"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical"
            android:visibility="invisible" >

            <TextView
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:text="불편해서 죽겠네" />
        </LinearLayout>
    </FrameLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0"
        android:background="#ccccff"
        android:gravity="center"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:text="테이블1" />

        <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:text="테이블2" />

        <Button
            android:id="@+id/button3"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:text="테이블3" />
    </LinearLayout>
</LinearLayout> 

-실행 화면

 
신고
Posted by Namseungil