iOS開(kāi)發(fā)實(shí)現(xiàn)簡(jiǎn)單抽屜效果
本文實(shí)例為大家分享了iOS實(shí)現(xiàn)簡(jiǎn)單抽屜效果的具體代碼,供大家參考,具體內(nèi)容如下
抽屜效果的原理:其實(shí)就是把兩個(gè)子控制器添加到一個(gè)RootViewController中,將子控制器的view添加到RootViewController的view上,然后改變子控制器view的frame實(shí)現(xiàn)抽屜的效果。
下面直接看看我自己寫(xiě)的一個(gè)小demo。
RootViewController.h
//兩個(gè)子控制器leftView和midView @property(nonatomic,weak)UIViewController *leftView; @property(nonatomic,weak)UIViewController *midView;
RootViewController.m
- (void)viewDidLoad {
? ? [super viewDidLoad];
? ? //將leftView和midView添加到self中作為子控制器。將他們的view添加到self.view中
? ? [self addChildViewController:self.leftView];
? ? [self.view addSubview:self.leftView.view];
? ? [self addChildViewController:self.midView];
? ? [self.view addSubview:self.midView.view];
? ? //設(shè)置一個(gè)按鈕點(diǎn)擊實(shí)現(xiàn)抽屜效果
? ? UIButton *leftButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
? ? leftButton.frame = CGRectMake(0, 50, 150, 150);
? ? [leftButton addTarget:self action:@selector(leftButtonPressed) forControlEvents:UIControlEventTouchUpInside];
? ? [leftButton setTitle:@"left" forState:UIControlStateNormal];
? ? [self.midView.view addSubview:leftButton];
}
-(void)leftButtonPressed
{
? ? //判斷抽屜是否是展開(kāi)狀態(tài)
? ? if (self.midView.view.frame.origin.x == 0) {
? ? ? ? //通過(guò)動(dòng)畫(huà)實(shí)現(xiàn)view.fram的改變
? ? ? ? [UIView animateWithDuration:0.3 animations:^{
? ? ? ? ? ? /* ?W ?H ?屏幕實(shí)際大小宏
? ? ? ? ? ? ?* #define ScreenWidth [UIScreen mainScreen].bounds.size.width
? ? ? ? ? ? ?* #define ScreenHeight [UIScreen mainScreen].bounds.size.height
? ? ? ? ? ? */
? ? ? ? ? ? self.leftView.view.frame = CGRectMake(0, 0, W, H);
? ? ? ? ? ? self.midView.view.frame = CGRectMake(200, 50, W, H-50*2);
? ? ? ? } completion:^(BOOL finished) {
? ? ? ? }];
? ? }else{
? ? ? ? [UIView animateWithDuration:0.3 animations:^{
? ? ? ? ? ? self.midView.view.frame = CGRectMake(0, 0, W, H);
? ? ? ? } completion:^(BOOL finished) {
? ? ? ? }];
? ? }
}AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
? ? self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
? ? LeftViewController *leftView = [[LeftViewController alloc] init];
? ? MidViewController *midView = [[MidViewController alloc]init];
? ? RootViewController *rootView = [[RootViewController alloc]init];
? ? rootView.leftView = leftView;
? ? rootView.midView = midView;
? ? self.window.rootViewController = rootView;
? ? [self.window makeKeyAndVisible];
? ? return YES;
}運(yùn)行代碼,效果圖如下:


以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- iOS開(kāi)發(fā)之路--仿網(wǎng)易抽屜效果
- IOS中MMDrawerController第三方抽屜效果的基本使用示例
- iOS實(shí)現(xiàn)簡(jiǎn)單的抽屜效果
- iOS實(shí)現(xiàn)側(cè)拉欄抽屜效果
- IOS中Swift仿QQ最新版抽屜側(cè)滑和彈框視圖
- iOS實(shí)現(xiàn)左右拖動(dòng)抽屜效果
- IOS實(shí)現(xiàn)點(diǎn)擊滑動(dòng)抽屜效果
- ios仿側(cè)邊抽屜效果實(shí)現(xiàn)代碼
- iOS實(shí)現(xiàn)簡(jiǎn)單抽屜效果
- iOS實(shí)現(xiàn)簡(jiǎn)易抽屜效果、雙邊抽屜效果
相關(guān)文章
IOS UITableView和NavigationBar的常用設(shè)置詳解
這篇文章主要介紹了IOS UITableView和NavigationBar的常用設(shè)置詳解的相關(guān)資料,需要的朋友可以參考下2017-04-04
iOS11 WKWebView 無(wú)法加載內(nèi)容的解決方法
這篇文章主要介紹了iOS11 WKWebView 無(wú)法加載內(nèi)容,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11
iOS基礎(chǔ)知識(shí)之@property 和 Ivar 的區(qū)別
這篇文章主要介紹了iOS基礎(chǔ)知識(shí)之@property 和 Ivar 的區(qū)別介紹,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-08-08
將多個(gè)字符串高亮顯示之TTTAttributedLabel
本文介紹了將多個(gè)字符串高亮顯示之TTTAttributedLabel。在此需要對(duì)每個(gè)字符串進(jìn)行匹配,可以研究下kmp和bm算法,在這里應(yīng)用了oc自帶的NSRegularExpression 來(lái)進(jìn)行正則表達(dá)式匹配,算是比較簡(jiǎn)單的方法,需要的朋友可以參考下2015-07-07
iOS學(xué)習(xí)教程之UIView中坐標(biāo)轉(zhuǎn)換詳解
這篇文章主要給大家介紹了關(guān)于iOS UIView中坐標(biāo)轉(zhuǎn)換的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)跟著小編一起看看吧。2017-05-05

