成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何創建一個動態的Action Sheet

移動開發 iOS
在開發應用App時,SDK絕對算得上是我們的好幫手。而在iOS應用中,Action Sheet絕對是必不可少的。本文就將通過Xcode,為大家介紹如何創建一個動態的Action Sheet。

Step 1: 創建新項目
  打開Xcode,選擇“Create a new Xcode project”,選擇“Single View Application”,點擊“next”。輸入項目名稱(我這么命名為“Fruits”),并確定Devices中選擇的是iPhone,然后勾選上“Use Storyboards”和“Use Automatic Reference Counting”,并點擊“Next”,選擇存放項目的地方,再點擊“create”。

 

Step 2: 設定支持的方向
我只想讓程序支持縱向模式,所以到 “Supported Interface Orientations”中,取消橫向模式的選中。

 

Step 3: 創建界面
打開工程的Storyboard文件,從 Object Library中拖一個label到View Controller,將這個lable放在View Controller的頂端,并居中,且寬度設置為280像素。打開Attributes Inspector(屬性面板),將對其方式設置為居中,最后,刪除lable中的默認文本。

  接著,從Object Library拖一個按鈕到View Controller中,將這個按鈕放在label下邊,雙擊按鈕的標題,并將標題改為“Fruits”。

 


Step 4:連接IBOutlet

  打開ViewController.m,按照如下代碼代碼進行修改:
1.#import "ViewController.h"
2.@interface ViewController () <UIActionSheetDelegate>
3.@property(nonatomic, weak)   IBOutlet UILabel *fruitLabel;
4.@property(nonatomic, strong) NSMutableArray *fruits;
5.- (IBAction)showFruits:(id)sender;
6.@end

在上面的代碼中,為label創建了一個插槽(outlet),以及一個存儲fruit的可變數組,還創建一個action用來顯示“action sheet”。我們還添加了UIActionSheetDelegate,所以當你從action sheet中選擇一個fruit的時,我們就可以更新label。


注意,上面所有這些內容都是在類擴展中實現的——因為這些屬性和方法沒不需要暴露給別的類。

  現在已經建立好了outlet和action,現在我們只需要將它們連接到相應的控件中就可以了。打開Storyboard,將fruitsLabel outlet與lable進行連接,以及把showFruits:action和button進行連接。為選擇Touch Up Inside作為按鈕的控件事件。

 

Step 5: 創建水果列表
打開ViewController.m,創建下邊這樣一個初始化方法:

1.-(id) initWithCoder:(NSCoder *)aDecoder{
2.    if (self = [super initWithCoder:aDecoder]) {
3.        self.fruits = [[NSMutableArray alloc] initWithObjects:@"Apple", @"Orange", @"Banana", @"Strawberry", @"Peach",nil];
4.    }
5.    return self;
6.}

  上面的代碼中創建了一個水果數組,并在這個數組中存儲了一些水果。
 
Step 6: 顯示列表

  在didReceiveMemoryWarning方法后面添加如下代碼:
- (IBAction)showFruits:(id)sender
{
    UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Select a fruit"
                                                             delegate:self
                                                    cancelButtonTitle:nil
                                               destructiveButtonTitle:nil
                                                    otherButtonTitles:nil];
    for (NSString *fruit in self.fruits) {
        [actionSheet addButtonWithTitle:fruit];
    }
    actionSheet.cancelButtonIndex = [actionSheet addButtonWithTitle:@"Cancel"];
    [actionSheet showInView:self.view];
}


上面的代碼首先創建一個action sheet,在初始化方法中,我們傳遞了一個標題和一個delegate,但是我們沒有添加任何按鈕,甚至是一個取消按鈕。如果我們在這里添加一個取消按鈕,然后再添加其它按鈕,那么取消按鈕就會在列表的最上邊,而不是最下面。


接下來,使用一個for in循環語句來遍歷之前創建的水果數組,再這個循環語句中,我們將所有的水果添加為action sheet的按鈕。循環語句之后,給action sheet添加了一個cancel按鈕——通過給cancelButtonIndex添加一個標題為“Cancel”的按鈕。這樣,action sheet就知道取消按鈕應該位于列表的底部,最后,我們以正常的方式將action sheet顯示出來。


Step 7: 更新Fruits Label
在showFruits: action下方添加一個action sheetdelegate協議。

- (void) actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
    if (buttonIndex != actionSheet.cancelButtonIndex) {
        self.fruitLabel.text = [self.fruits objectAtIndex:buttonIndex];
    }
}

  當點擊action sheet中的按鈕時,就會調用上的delegate方法,在方法中,首先判斷一下被按下的按鈕是取消按鈕還是fruit的按鈕——通過對選中按鈕的索引值和取消按鈕的索引值進行比較來判斷的。如果選中的是fruit相關按鈕,那么就將label更新為選中的水果。

 

來源:mobile.tutsplus

責任編輯:佚名 來源: cocoachina
相關推薦

2013-06-03 15:38:16

iOS開發iOS SDK動態Action Sh

2023-07-06 08:11:35

EasyExcelsheet

2020-06-02 10:04:58

IT部門首席信息官CIO

2023-04-04 09:15:10

NAPI 框架鴻蒙

2009-08-10 18:55:50

創建XSD架構文件

2010-08-05 15:46:13

Flex行為Flex效果

2017-02-10 20:00:17

Linux共享目錄命令

2009-08-19 04:14:00

線性鏈表

2020-08-24 07:33:20

CSS框架 SASS

2022-05-16 08:17:36

裝飾器模式

2019-01-07 10:25:44

Gonimo嬰兒監視開源

2010-10-26 12:44:38

網絡監控

2014-05-23 10:37:37

聊天程序PHP聊天程序

2019-08-12 13:45:26

GithubGit開源

2023-03-13 14:02:31

元宇宙

2012-11-15 09:38:46

2022-12-28 08:17:36

數據庫數據導出

2016-03-08 09:52:22

xcode插件開發

2012-04-19 17:42:46

Titanium布局

2019-08-12 09:55:10

GitHub項目終端
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 天天天操 | 日韩欧美视频在线 | 日韩中文字幕视频 | 成人免费网视频 | 欧美一级欧美一级在线播放 | 国产高清久久久 | 亚洲国产成人精品女人久久久 | 国产精品一区二 | 久久久精品一区二区三区 | 久久机热 | 天天曰天天干 | 亚洲综合在线网 | 国产精品视频网站 | 欧美日韩综合精品 | 亚洲三区在线观看 | 999在线精品 | 色天堂影院 | 亚洲韩国精品 | 久久一级 | 91久久精品国产 | 国产精品影视在线观看 | 国产精品欧美一区二区三区不卡 | 成人免费毛片片v | 日一区二区 | 久久综合九九 | 天天玩夜夜操 | 亚洲日韩中文字幕 | 国产免费一区二区三区 | 午夜影院在线观看 | 国内精品久久精品 | 国产精品99久久久久久宅男 | 国产在线一区二区 | 国产性生活一级片 | 国产成人精品一区二区三区网站观看 | 日本免费小视频 | 精品国产三级 | 粉嫩一区二区三区性色av | 国产欧美一区二区久久性色99 | av在线一区二区 | 亚洲成人久久久 | 日韩精品在线播放 |