iOS開發(fā)實現(xiàn)簡單抽屜效果
本文實例為大家分享了iOS實現(xiàn)簡單抽屜效果的具體代碼,供大家參考,具體內容如下
抽屜效果的原理:其實就是把兩個子控制器添加到一個RootViewController中,將子控制器的view添加到RootViewController的view上,然后改變子控制器view的frame實現(xiàn)抽屜的效果。
下面直接看看我自己寫的一個小demo。
RootViewController.h
//兩個子控制器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]; ? ? //設置一個按鈕點擊實現(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) { ? ? ? ? //通過動畫實現(xiàn)view.fram的改變 ? ? ? ? [UIView animateWithDuration:0.3 animations:^{ ? ? ? ? ? ? /* ?W ?H ?屏幕實際大小宏 ? ? ? ? ? ? ?* #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; }
運行代碼,效果圖如下:
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
iOS體驗性優(yōu)化之RTL適配右滑返回的實現(xiàn)
這篇文章主要給大家介紹了關于iOS體驗性優(yōu)化之RTL適配右滑返回實現(xiàn)的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。2018-01-01iOS開發(fā)中用imageIO漸進加載圖片及獲取exif的方法
這篇文章主要介紹了iOS開發(fā)中中用imageIO漸進加載圖片及獲取exif的方法,代碼演示為傳統(tǒng)的Objective-C,需要的朋友可以參考下2015-09-09簡單談談c/c++中#import、#include和@class的區(qū)別
對于#import,我想做過iOS開發(fā)的人應該都不陌生。在開發(fā)過程中,當我們需要聲明某一個類時,都需要去引用。而#imclude的話,在我們學習C時就已經知道了,他的作用也是引用聲明的意思。在表面上他們的作用似乎都是一樣的。但是在具體功能實現(xiàn)方式上,還是有著很大的區(qū)別。2018-01-01解決Charles抓包https時,無法查看CONNECT請求的問題
下面小編就為大家分享一篇解決Charles抓包https時,無法查看CONNECT請求的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-01-01iOS UITableView 拖動排序實現(xiàn)代碼
這篇文章主要為大家詳細介紹了iOS UITableView 拖動排序實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-09-09