ios成长之每日一遍(day 3)

今天要介绍一下更多的控键使用, 当然也会对上一篇说的控件做一个巩固, 所以这一篇涉及到的控键会包括 UIImage、UITextField、UIButton、UILabel、UISwitch、以及 UIActionSheetDelegate的使用。

BIDViewController.h

#import <UIKit/UIKit.h>

@interface BIDViewController : UIViewController <UIActionSheetDelegate>    //     声明使用到UIActionSheetDelegate
@property (weak, nonatomic) IBOutlet UITextField *nameField;
@property (weak, nonatomic) IBOutlet UITextField *numberField;
@property (weak, nonatomic) IBOutlet UILabel *sliderLabel;
@property (weak, nonatomic) IBOutlet UISwitch *leftSwitch;
@property (weak, nonatomic) IBOutlet UISwitch *rightSwitch;
@property (weak, nonatomic) IBOutlet UIButton *doSomethingButton;

- (IBAction)textFieldDoneEditing:(id)sender;
- (IBAction)backgroundTap:(id)sender;
- (IBAction)sliderChanged:(UISlider *)sender;
- (IBAction)switchChanged:(UISwitch *)sender;
- (IBAction)toggleControls:(UISegmentedControl *)sender;
- (IBAction)buttonPressed:(id)sender;

@end

 

BIDViewController.m

#import "BIDViewController.h"

@interface BIDViewController ()

@end

@implementation BIDViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    self.sliderLabel.text = @"50";    // 为UILabel缚值
    UIImage *buttonImageNormal = [UIImage imageNamed:@"whiteButton.png"];    // 根据图片的名字获取UIImage对象
    UIEdgeInsets insets = UIEdgeInsetsMake(0, 12, 0, 12);     // 定义一个参数分别是上左下右的矩行框   
    UIImage *stretchableButtonImageNormal = [buttonImageNormal
                                             resizableImageWithCapInsets:insets];    // 定义图片的拉伸区域, 有点儿像 .9图片哦
    [self.doSomethingButton setBackgroundImage:stretchableButtonImageNormal
                                      forState:UIControlStateNormal];    // 设置按钮的背景图
    
    UIImage *buttonImagePressed = [UIImage imageNamed:@"blueButton.png"];
    UIImage *stretchableButtonImagePressed = [buttonImagePressed
                                              resizableImageWithCapInsets:insets];
    [self.doSomethingButton setBackgroundImage:stretchableButtonImagePressed
                                      forState:UIControlStateHighlighted];    // 设置按钮的背景图, 不同的是这个背景图在按钮触发的显示
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (IBAction)textFieldDoneEditing:(id)sender {
    [sender resignFirstResponder];    // 放弃第一响应者, 让键盘隐藏
}

- (IBAction)backgroundTap:(id)sender {
    [self.nameField resignFirstResponder];    // 放弃第一响应者, 让键盘隐藏
    [self.numberField resignFirstResponder];
}

- (IBAction)sliderChanged:(UISlider *)sender {
    int progress = lroundf(sender.value);    // 获取slider的值并且进行四舍五入的折算
    self.sliderLabel.text = [NSString stringWithFormat:@"%d", progress];    // 傅值label
}

- (IBAction)switchChanged:(UISwitch *)sender {
    BOOL setting = sender.isOn;      // 获取当前switch的值
    [self.leftSwitch setOn:setting animated:YES];        为switch设值
    [self.rightSwitch setOn:setting animated:YES];
}

- (IBAction)toggleControls:(UISegmentedControl *)sender {
    // 0 == switches index
    if (sender.selectedSegmentIndex == 0) {
        self.leftSwitch.hidden = NO;    // 隐藏
        self.rightSwitch.hidden = NO;    // 隐藏
        self.doSomethingButton.hidden = YES;    // 显示
    }
    else {
        self.leftSwitch.hidden = YES;
        self.rightSwitch.hidden = YES;
        self.doSomethingButton.hidden = NO;
    }
}

- (IBAction)buttonPressed:(id)sender {
    UIActionSheet *actionSheet = [[UIActionSheet alloc]
                                  initWithTitle:@"Are you sure?"
                                  delegate:self
                                  cancelButtonTitle:@"No Way!"
                                  destructiveButtonTitle:@"Yes, I’m Sure!"
                                  otherButtonTitles:nil];
    [actionSheet showInView:self.view];
    // UIActionSheet是在iOS弹出的选择按钮项
}

// UIActionSheet 消失的时候调用
- (void)actionSheet:(UIActionSheet *)actionSheet
didDismissWithButtonIndex:(NSInteger)buttonIndex
{
    // UIActionSheet 消失不是由于点击cancelButton触发
    if (buttonIndex != [actionSheet cancelButtonIndex])
    {
        NSString *msg = nil;
        
        if (self.nameField.text.length > 0)
            msg = [NSString stringWithFormat:
                   @"You can breathe easy, %@, everything went OK.",
                   self.nameField.text];
        else
            msg = @"You can breathe easy, everything went OK.";
        
        // 创建UIAlertView对象
        UIAlertView *alert = [[UIAlertView alloc]
                              initWithTitle:@"Something was done"
                              message:msg
                              delegate:self
                              cancelButtonTitle:@"Phew!"
                              otherButtonTitles:nil];
        [alert show];
    }
}
@end

 

你可能感兴趣的:(ios)