iphone与android一样都包含一些常见的控件比如按钮,图片控件(ImageView)、TableViewController(android下为listView)、标签(android下为TextView)、进度条等。今天我们就来学习一下这些控件的使用。

新建一个基于View的项目,添加下图中的控件


我们添加了Label、TextField、Slider、SwitchButton、ToggleButton控件。下面我们需要为TextField和Label控件(显示Slider值的控件图中35)设置输出口以及为按钮设置事件监听。不要忘了将控件与输出口及事件建立连接,方法:按住Control从File's owner 拖到控件,这时会弹出相关的输出口或事件。

在ViewController文件中加入一下代码:

<UIActionSheetDelegate>{    }@property (nonatomic, retain) IBOutlet UITextField *nameField;@property (nonatomic, retain) IBOutlet UITextField *passField;@property (nonatomic, retain) IBOutlet UILabel *sliderLabel;@property (nonatomic, retain) IBOutlet UISwitch *leftSwitch;@property (nonatomic, retain) IBOutlet UISwitch *rightSwitch;@property (nonatomic, retain) IBOutlet UIButton *doSomethingBtn;- (IBAction)toggleControls:(id)sender;- (IBAction)switchChanged:(id)sender;- (IBAction)buttonPressed:(id)sender;- (IBAction)textFieldDoneEditing:(id)sender;- (IBAction)backgroundTap:(id)sender;- (IBAction)sliderChanged:(id)sender;

修改ViewController.m文件如下:

#import "ViewController.h"@implementation ViewController@synthesize nameField;@synthesize passField;@synthesize sliderLabel;@synthesize leftSwitch;@synthesize rightSwitch;@synthesize doSomethingBtn;- (void)didReceiveMemoryWarning{    [super didReceiveMemoryWarning];    // Release any cached data, images, etc that aren't in use.}- (IBAction)toggleControls:(id)sender{    if([sender selectedSegmentIndex] == kSwichesSegmentIndex){        leftSwitch.hidden = NO;        rightSwitch.hidden = NO;        doSomethingBtn.hidden = YES;    }else{        leftSwitch.hidden = YES;        rightSwitch.hidden = YES;        doSomethingBtn.hidden = NO;    }}- (IBAction)switchChanged:(id)sender{    UISwitch *whichSwitch = (UISwitch *)sender;    BOOL setting = whichSwitch.isOn;    [leftSwitch setOn:setting animated:YES];    [rightSwitch setOn:setting animated:YES];}- (IBAction)buttonPressed:(id)sender{    UIActionSheet *actionSheet = [[UIActionSheet alloc]                                   initWithTitle:@"Are you sure?"                                   delegate:self                                  cancelButtonTitle:@"No way!"                                  destructiveButtonTitle:@"Yes,I'm sure!"                                  otherButtonTitles:nil, nil];    [actionSheet showInView:self.view];    [actionSheet release];}- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex{    if (buttonIndex != [actionSheet cancelButtonIndex]) {        NSString *msg = nil;        if (nameField.text.length > 0) {            msg = [[NSString alloc] initWithFormat:@"You can breathe easy, %@, everything went OK.", nameField.text];        }else{            msg = @"You can breathe easy, everything went Ok.";        }        UIAlertView *alert = [[UIAlertView alloc]                               initWithTitle:@"Something was done"                               message:msg                               delegate:self                               cancelButtonTitle:@"Phew!"                               otherButtonTitles:nil, nil];        [alert show];        [alert release];        [msg release];    }    }- (IBAction)textFieldDoneEditing:(id)sender{    [sender resignFirstResponder];  //Hidden keyboard}- (IBAction)backgroundTap:(id)sender{    [nameField resignFirstResponder];    [passField resignFirstResponder];}- (IBAction)sliderChanged:(id)sender{    UISlider *slider = (UISlider *)sender;    int progress = (int)slider.value;    NSString *labelText = [[NSString alloc] initWithFormat:@"%d",progress];    sliderLabel.text = labelText;    [labelText release];}#pragma mark - View lifecycle- (void)viewDidLoad{    [super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.}- (void)viewDidUnload{    self.nameField = nil;    self.passField = nil;    self.sliderLabel = nil;    self.leftSwitch = nil;    self.rightSwitch = nil;    self.doSomethingBtn = nil;    [super viewDidUnload];    // Release any retained subviews of the main view.    // e.g. self.myOutlet = nil;}- (void)viewWillAppear:(BOOL)animated{    [super viewWillAppear:animated];}- (void)viewDidAppear:(BOOL)animated{    [super viewDidAppear:animated];}- (void)viewWillDisappear:(BOOL)animated{[super viewWillDisappear:animated];}- (void)viewDidDisappear:(BOOL)animated{[super viewDidDisappear:animated];}- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{    // Return YES for supported orientations    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {        return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);    } else {        return YES;    }}- (void) dealloc{    [nameField release];    [passField release];    [sliderLabel release];    [leftSwitch release];    [rightSwitch release];    [doSomethingBtn release];    [super dealloc];}@end

- (IBAction)toggleControls:(id)sender 当ToggleButton按钮按下时,另外一个按钮设置为同样的状态。
- (IBAction)switchChanged:(id)sender 该事件处理Switch按钮事件,隐藏toggle按钮。
- (IBAction)buttonPressed:(id)sender 当toggle隐藏button显示时,响应Button事件。
- (IBAction)textFieldDoneEditing:(id)sender; 隐藏输入面板,当用户按下输入法Done按钮时

- (IBAction)backgroundTap:(id)sender 隐藏输入法,但用户点击程序任意位置时
- (IBAction)sliderChanged:(id)sender; 当Slider值改变时,Label的text设置为Slider的Value。

到此我们对一些常用的小控件有了一定的了解,接下来我们将学习TableView控件,相当于android平台的ListView控件。


好了就写这么多,有什么问题请留言,大家一起学习交流!

说明:转载请注明出处!

更多相关文章

  1. Android(安卓)Keyboard/Touch Panel分析
  2. kotlin初窥之Kotlin Android(安卓)Extensions
  3. Listview的onItemClickListener无法响应的问题
  4. Android中使用WebView, WebChromeClient和WebViewClient加载网页
  5. Android知识点记录: 使用代码设置 android 上listView的条目的点
  6. Android开发实践 事件处理机制 全面分析
  7. Android(安卓)编程 设计规范
  8. Android(安卓)Layout XML属性
  9. android 按钮设计中state_selected属性

随机推荐

  1. Android提示框
  2. Android 监听耳机外放设备
  3. Android 裁剪图片
  4. android 手电筒的实现
  5. Android在子线程中更新UI(二)
  6. Android Audio代码分析14 - testPlayback
  7. 在四大主件以外的类中 怎么使用Context
  8. No 96 · android alertdialog
  9. Android MediaServer初始化流程
  10. Android重写view时onAttachedToWindow ()