iOS開發(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)抽屜的效果。
下面直接看看我自己寫的一個(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 { ? ? //判斷抽屜是否是展開狀態(tài) ? ? if (self.midView.view.frame.origin.x == 0) { ? ? ? ? //通過動(dòng)畫實(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開發(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體驗(yàn)性優(yōu)化之RTL適配右滑返回的實(shí)現(xiàn)
這篇文章主要給大家介紹了關(guān)于iOS體驗(yàn)性優(yōu)化之RTL適配右滑返回實(shí)現(xiàn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-01-01iOS開發(fā)中用imageIO漸進(jìn)加載圖片及獲取exif的方法
這篇文章主要介紹了iOS開發(fā)中中用imageIO漸進(jìn)加載圖片及獲取exif的方法,代碼演示為傳統(tǒng)的Objective-C,需要的朋友可以參考下2015-09-09簡(jiǎn)單談?wù)刢/c++中#import、#include和@class的區(qū)別
對(duì)于#import,我想做過iOS開發(fā)的人應(yīng)該都不陌生。在開發(fā)過程中,當(dāng)我們需要聲明某一個(gè)類時(shí),都需要去引用。而#imclude的話,在我們學(xué)習(xí)C時(shí)就已經(jīng)知道了,他的作用也是引用聲明的意思。在表面上他們的作用似乎都是一樣的。但是在具體功能實(shí)現(xiàn)方式上,還是有著很大的區(qū)別。2018-01-01解決Charles抓包https時(shí),無法查看CONNECT請(qǐng)求的問題
下面小編就為大家分享一篇解決Charles抓包https時(shí),無法查看CONNECT請(qǐng)求的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-01-01iOS UITableView 拖動(dòng)排序?qū)崿F(xiàn)代碼
這篇文章主要為大家詳細(xì)介紹了iOS UITableView 拖動(dòng)排序?qū)崿F(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09iOS 本地視頻和網(wǎng)絡(luò)視頻流播放實(shí)例代碼
本篇文章主要介紹了iOS 本地視頻和網(wǎng)絡(luò)視頻流播放實(shí)例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07