'UI콤퍼넌트들'에 해당되는 글 1건

  1. 2010.10.12 버튼등등등 UI콤퍼넌트들 코드로 생성방법들
아이폰어플개발정보2010. 10. 12. 06:56
버튼등등등 UI콤퍼넌트들 코드로 생성방법들

How do I start my application in landscape mode?

To start your application in landscape mode, edit your Info.plist file to add the UIInterfaceOrientation key with the appropriate value (UIInterfaceOrientationLandscapeRight or UIInterfaceOrientationLandscapeLeft), as shown in Listing 1. This provides a hint to the system to set the orientation of the status bar appropriately at launch time.

Listing 1: Starting your application in landscape mode

 <key>UIInterfaceOrientation</key> <string>UIInterfaceOrientationLandscapeRight</string>

For detailed information see "Launching in Landscape Mode" in iPhone Application Programming Guide.

How do I enable autorotation?

To use autorotation, you must use a view controller (and subclass it), and the subclass must return YES for the methodshouldAutorotateToInterfaceOrientation:. See Listing 2.

Listing 2: Enabling autorotation

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return YES; }

You can also choose whether to allow or deny the rotation, returning YES or NO as appropriate, after considering, for example, the value ofUIInterfaceOrientation. See UIApplication Class Reference for the possible values of UIInterfaceOrientation.

You must create the window with the size [[UIDevice mainScreen] bounds] and the view controller's view with [[UIDevice mainScreen] applicationFrame].

You can also enable support for autorotation in Interface Builder:

  1. Open a nib file with a UIWindow already defined.

  2. Drag in a UIViewController from the library to the nib window.

  3. Open (double-click) the UIViewController object.

  4. Set its custom class name to your UIViewController subclass name.

  5. Drag in a empty UIView from the library window into the UIViewController. (Interface Builder will provide visual feedback as the UIView is moved into place inside the UIViewController)

  6. Set or connect the window's view property to be that of the UIViewController's view property

If you are also using a toolbar, the view controller for each toolbar item must implement the shouldAutorotateToInterfaceOrientation: method and return YES for each of the orientations you wish to support. If you have a navigation controller for a toolbar item, the root view controller of that navigation controller must implement the shouldAutorotateToInterfaceOrientation: method and return YES.

How do I flip my interface, as the Weather application does?

To "flip" your user interface, use the setAnimationTransition:forView:Cache: method of the UIView class, and provide the appropriate constant to specify the flip direction (using UIViewAnimationTransitionFlipFromRight or UIViewAnimationTransitionFlipFromLeft).

See the UICatalog sample application and UIView Class Reference.

The "Utility Application" template in Xcode provides a starting point for implementing applications which, like the Weather application, have a "front" and a "back" view.

How do I handle autorotation of my user interface?

For your application to support autorotation, where your interface changes between portrait and landscape orientation, it needs to implement aUIViewController object and override the shouldAutorotateToInterfaceOrientation: method. See "Autorotating views" in View Controller Programming Guide, and the WhichWayIsUp sample code.

How do I internationalize or localize my application's text strings?

To internationalize your application's text strings, you store your localized text in Localizable.strings inside a folder named <language_code>.lproj, where <language_code> is an ISO 639-1 language code (for example, en.lproj or fr.lproj).

You can then obtain the localized text in the user's currently selected language for display using the NSLocalizedString function.

For example, to display the French word for "City" in your interface, you would first add an entry to your fr.lproj/Localizable.strings file, as shown inListing 3, and then use the code shown in Listing 4 to get the appropriate localized version.

Listing 3: An entry in fr.lproj/Localizable.strings

"City" = "Ville";

Listing 4: Using NSLocalizedString

label.text = NSLocalizedString(@"City", @"Label for City text field");

You can also define the localizable strings in your nib file, and create localized copies of that nib.

See "Internationalizing Your Application" in iPhone Application Programming Guide for more information.


How do I handle touch-based input such as tracking the user's finger or detecting multiple touches?

To receive touch input, you instantiate a UIResponder object (typically a view) and add instance methods that handle touches. Your methods are invoked when those touches occur.

You can implement separate handlers for the different "phases" of a touch—when touches begin, move, end, or are canceled by the system. See Listing 5 for the available set of handlers.

Listing 5: Available touch event handlers

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event; - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event; - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event; - (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event;

By default, a view ignores all but the first touch during a multi-touch sequence. If you want the view to handle multiple touches you must enable multiple touches for the view. This can be done programmatically by setting the multipleTouchEnabled property of your view to YES, or in Interface Builder using the inspector for the related view.

For detailed information, see "Event Handling" in iPhone Application Programming Guide and the UITouch Class Reference. For an example of how to handle touch input, see the MoveMe sample application.

Windows, Views, and Controls

How do I detect the screen boundary?

To detect the screen boundary, use the UIScreen class, which contains the bounding rectangle of the device's entire screen. When you set up the user interface for your application, use the properties of this object to get the recommended frame rectangles for your application views.

How do I create a window?

To create a window, use the UIWindow class, as shown in Listing 6.

Listing 6: Creating a window

window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

For more information, see UIWindow Class Reference.

How do I create a window with a navigation controller?

To create a window with a navigation controller, use the UINavigationController class, as shown in Listing 7.

Listing 7: Creating a window with a navigation controller

self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; [window setBackgroundColor:[UIColor redColor]]; MainViewController *navController = [[MainViewController alloc] init]; // create a navigation controller using the new controller navigationController = [[UINavigationController alloc] initWithRootViewController:navController]; [navController release]; // Add the navigation controller's view to the window [window addSubview:[navigationController view]]; [window makeKeyAndVisible];

For more information, see UINavigationController Class Reference.

How do I create a button?

To create a button, use the UIButton class, as shown in Listing 8.

Listing 8: Creating a button

CGRect frame = CGRectMake(0.0, 0.0, 100.0, 40.0); UIImage *buttonImage = [UIImage imageNamed:@"grayButton.png"]; UIButton *stopButton = [[UIButton alloc] initWithFrame:frame]; [stopButton setTitle:@"Button" forState:UIControlStateNormal]; [stopButton setTitleColor:[UIColor blackColor] forState:UIControlEventTouchDown]; [stopButton setBackgroundImage:buttonImage forState:UIControlStateNormal]; stopButton.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter; stopButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter; [stopButton addTarget:self action:@selector(stopAction:) forControlEvents:UIControlEventTouchUpInside]; [stopButton setBackgroundColor:[UIColor clearColor]]; // then add the button to a UIView like this: // [myView addSubview: stopButton];

For more information, see UIButton Class Reference.

How do I create a label?

To create a label, use the UILabel class, as shown in Listing 9.

Listing 9: Creating a label

CGRect labelFrame = CGRectMake(0.0, 0.0, 100.0, 30.0); UILabel *label = [[UILabel alloc] initWithFrame:labelFrame]; [label setFont:[UIFont systemFontOfSize:12]]; label.textAlignment = UITextAlignmentLeft; [label setText:@"TextLabel:"]; label.textColor = [UIColor whiteColor]; label.backgroundColor = [UIColor blackColor]; [self.view addSubview:label];

For more information, see UILabel Class Reference.

How do I create a switch?

To create a switch, use the UISwitch class, as shown in Listing 10.

Listing 10: Creating a switch

CGRect frame = CGRectMake(0.0, 0.0, 60.0, 26.0); UISwitch *switchControl = [[UISwitch alloc] initWithFrame:frame]; [switchControl addTarget:self action:@selector(action:) forControlEvents:UIControlEventTouchUpInside]; [switchControl setBackgroundColor:[UIColor clearColor]];

For more information, see UISwitch Class Reference.

How do I create a text field?

To create a text field, use the UITextField class, as shown in Listing 11.

Listing 11: Creating a text field

CGRect textFieldFrame = CGRectMake(0.0, 0.0, 100.0, 30.0); UITextField *textField = [[UITextField alloc] initWithFrame:textFieldFrame]; [textField setBorderStyle:UITextFieldBorderStyleBezel]; [textField setTextColor:[UIColor blackColor]]; [textField setFont:[UIFont systemFontOfSize:20]]; [textField setDelegate:self]; [textField setPlaceholder:@"<enter text>"]; [textField setBackgroundColor:[UIColor whiteColor]]; textField.keyboardType = UIKeyboardTypeDefault;

For more information, see UITextField Class Reference.

How do I create a text view?

To create a text view, use the UITextView class, as shown in Listing 12.

Listing 12: Creating a text view

CGRect textFieldFrame = CGRectMake(0.0, 0.0, 200.0, 200.0); UITextView *textView = [[UITextView alloc] initWithFrame:textFieldFrame]; [textView setTextColor:[UIColor blackColor]]; [textView setFont:[UIFont systemFontOfSize:20]]; [textView setDelegate:self]; [textView setBackgroundColor:[UIColor whiteColor]]; textView.keyboardType = UIKeyboardTypeDefault;

For more information, see UITextView Class Reference.

How do I create a web view?

To create a web view, use the UIWebView class, as shown in Listing 13.

Listing 13: Creating a web view

CGRect webFrame = CGRectMake(0.0, 0.0, 200.0, 200.0); UIWebView *webView = [[UIWebView alloc] initWithFrame:webFrame]; [webView setBackgroundColor:[UIColor whiteColor]];

For more information, see UIWebView Class Reference.

How do I create a view for images?

To create a view for images, use the UIImageView class, as shown in Listing 14.

Listing 14: Creating a view for images

UIImage *image = [UIImage imageNamed:@"image.png"]; UIImageView *theImageView = [[UIImageView alloc] initWithImage:image];

For more information, see UIImageView Class Reference.

How do I create a slider?

To create a slider, use the UISlider class, as shown in Listing 15.

Listing 15: Creating a slider

CGRect frame = CGRectMake(0.0, 0.0, 200.0, 10.0); UISlider *slider = [[UISlider alloc] initWithFrame:frame]; [slider addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventValueChanged]; [slider setBackgroundColor:[UIColor clearColor]]; slider.minimumValue = 0.0; slider.maximumValue = 50.0; slider.continuous = YES; slider.value = 25.0;

For more information, see UISlider Class Reference.

How do I create a segmented control?

To create a segmented control, use the UISegmentedControl class, as shown in Listing 16.

Listing 16: Creating a segmented control

NSArray *arrayOfImages = [NSArray arrayWithObjects: [UIImage imageNamed:@"segment1_Image.png"],                                          [UIImage imageNamed:@"segment2_Image.png"],                                          [UIImage imageNamed:@"segment3_Image.png"],                                          [UIImage imageNamed:@"segment4_Image.png"], nil]; UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems: arrayOfImages]; CGRect frame = CGRectMake(0.0, 120.0, 300.0, 44.0); [segmentedControl setFrame:frame]; [segmentedControl addTarget:self action:@selector(action:) forControlEvents:UIControlEventValueChanged];

For more information, see UISegmentedControl Class Reference.

How do I create a page control?

To create a page control, use the UIPageControl class, as shown in Listing 17.

Listing 17: Creating a page control

CGRect frame = CGRectMake(0.0, 0.0, 200.0, 40.0); UIPageControl *pageControl = [[UIPageControl alloc] initWithFrame:frame]; [pageControl addTarget:self action:@selector(action:) forControlEvents:UIControlEventTouchUpInside]; [pageControl setBackgroundColor:[UIColor clearColor]]; pageControl.numberOfPages = 10;

For more information, see UIPageControl Class Reference.

How do I create a table view?

To create a table view, use the UITableViewclass, as shown in Listing 18.

Listing 18: Creating a table view

UITableView *tableView = [[UITableView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame] style:UITableViewStylePlain]; tableView.delegate = self; tableView.dataSource = self; tableView.rowHeight = 54; [tableView reloadData];

For more information, see UITableView Class Reference. See also the TableViewSuite sample application.

How do I add buttons to the UINavigationController?

If your application has a UIViewController object that uses a UINavigationController object, you can add custom buttons in your loadView method. See Listing 19.

Listing 19: Adding buttons to the UINavigationController object

// add our custom add button as the nav bar's custom right view UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addAction:)]; //self.navigationItem.customRightItem = addButton;

[addButton release];

For more information, see UINavigationController Class Reference.


Posted by 오늘마감

댓글을 달아 주세요