├── SlideZoomMenuDemo ├── Images.xcassets │ ├── mm1.imageset │ │ ├── mm1.png │ │ └── Contents.json │ ├── mm2.imageset │ │ ├── mm2.png │ │ └── Contents.json │ ├── mm3.imageset │ │ ├── mm3.png │ │ └── Contents.json │ ├── mm4.imageset │ │ ├── mm4.png │ │ └── Contents.json │ ├── mm5.imageset │ │ ├── mm5.png │ │ └── Contents.json │ ├── mm6.imageset │ │ ├── mm6.png │ │ └── Contents.json │ ├── pic.imageset │ │ ├── lmm.png │ │ └── Contents.json │ ├── bg_mm.imageset │ │ ├── bg.png │ │ └── Contents.json │ ├── arrow.imageset │ │ ├── arrow_normal@2x.png │ │ └── Contents.json │ └── AppIcon.appiconset │ │ └── Contents.json ├── ViewControllers │ ├── LeftCell.h │ ├── HomeViewController.h │ ├── NextViewController.h │ ├── MainViewController.h │ ├── LeftCell.m │ ├── MainCell.h │ ├── LeftViewController.h │ ├── MainCell.m │ ├── HomeViewController.m │ ├── NextViewController.m │ ├── HomeViewController.xib │ ├── NextViewController.xib │ ├── LeftCell.xib │ ├── MainViewController.xib │ ├── LeftViewController.m │ ├── MainViewController.m │ ├── MainCell.xib │ └── LeftViewController.xib ├── ViewController.h ├── main.m ├── AppDelegate.h ├── ViewController.m ├── SlideZoomMenu │ ├── SLideZoomMenuController.h │ ├── SLideZoomMenuController.xib │ └── SLideZoomMenuController.m ├── Info.plist ├── Base.lproj │ ├── Main.storyboard │ └── LaunchScreen.xib └── AppDelegate.m ├── SlideZoomMenuDemo.xcodeproj ├── xcuserdata │ ├── jianren.xcuserdatad │ │ ├── xcdebugger │ │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ │ ├── xcschememanagement.plist │ │ │ └── SlideZoomMenuDemo.xcscheme │ └── renxiaojian.xcuserdatad │ │ ├── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ ├── xcschememanagement.plist │ │ └── SlideZoomMenuDemo.xcscheme ├── project.xcworkspace │ ├── contents.xcworkspacedata │ ├── xcuserdata │ │ ├── jianren.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ │ └── renxiaojian.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcshareddata │ │ └── SlideZoomMenuDemo.xccheckout └── project.pbxproj └── SlideZoomMenuDemoTests ├── Info.plist └── SlideZoomMenuDemoTests.m /SlideZoomMenuDemo/Images.xcassets/mm1.imageset/mm1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xiaomi6s/SliderZoom/HEAD/SlideZoomMenuDemo/Images.xcassets/mm1.imageset/mm1.png -------------------------------------------------------------------------------- /SlideZoomMenuDemo/Images.xcassets/mm2.imageset/mm2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xiaomi6s/SliderZoom/HEAD/SlideZoomMenuDemo/Images.xcassets/mm2.imageset/mm2.png -------------------------------------------------------------------------------- /SlideZoomMenuDemo/Images.xcassets/mm3.imageset/mm3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xiaomi6s/SliderZoom/HEAD/SlideZoomMenuDemo/Images.xcassets/mm3.imageset/mm3.png -------------------------------------------------------------------------------- /SlideZoomMenuDemo/Images.xcassets/mm4.imageset/mm4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xiaomi6s/SliderZoom/HEAD/SlideZoomMenuDemo/Images.xcassets/mm4.imageset/mm4.png -------------------------------------------------------------------------------- /SlideZoomMenuDemo/Images.xcassets/mm5.imageset/mm5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xiaomi6s/SliderZoom/HEAD/SlideZoomMenuDemo/Images.xcassets/mm5.imageset/mm5.png -------------------------------------------------------------------------------- /SlideZoomMenuDemo/Images.xcassets/mm6.imageset/mm6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xiaomi6s/SliderZoom/HEAD/SlideZoomMenuDemo/Images.xcassets/mm6.imageset/mm6.png -------------------------------------------------------------------------------- /SlideZoomMenuDemo/Images.xcassets/pic.imageset/lmm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xiaomi6s/SliderZoom/HEAD/SlideZoomMenuDemo/Images.xcassets/pic.imageset/lmm.png -------------------------------------------------------------------------------- /SlideZoomMenuDemo/Images.xcassets/bg_mm.imageset/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xiaomi6s/SliderZoom/HEAD/SlideZoomMenuDemo/Images.xcassets/bg_mm.imageset/bg.png -------------------------------------------------------------------------------- /SlideZoomMenuDemo/Images.xcassets/arrow.imageset/arrow_normal@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xiaomi6s/SliderZoom/HEAD/SlideZoomMenuDemo/Images.xcassets/arrow.imageset/arrow_normal@2x.png -------------------------------------------------------------------------------- /SlideZoomMenuDemo.xcodeproj/xcuserdata/jianren.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo.xcodeproj/xcuserdata/renxiaojian.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo.xcodeproj/project.xcworkspace/xcuserdata/jianren.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xiaomi6s/SliderZoom/HEAD/SlideZoomMenuDemo.xcodeproj/project.xcworkspace/xcuserdata/jianren.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /SlideZoomMenuDemo.xcodeproj/project.xcworkspace/xcuserdata/renxiaojian.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xiaomi6s/SliderZoom/HEAD/SlideZoomMenuDemo.xcodeproj/project.xcworkspace/xcuserdata/renxiaojian.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /SlideZoomMenuDemo/ViewControllers/LeftCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // LeftCell.h 3 | // SlideZoomMenuDemo 4 | // 5 | // Created by jian on 15/4/9. 6 | // Copyright (c) 2015年 renxiaojian. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface LeftCell : UITableViewCell 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // SlideZoomMenuDemo 4 | // 5 | // Created by renxiaojian on 15/3/16. 6 | // Copyright (c) 2015年 renxiaojian. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo/ViewControllers/HomeViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // HomeViewController.h 3 | // SlideZoomMenuDemo 4 | // 5 | // Created by jian on 15/4/8. 6 | // Copyright (c) 2015年 renxiaojian. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface HomeViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo/ViewControllers/NextViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // NextViewController.h 3 | // SlideZoomMenuDemo 4 | // 5 | // Created by jian on 15/4/9. 6 | // Copyright (c) 2015年 renxiaojian. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface NextViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo/ViewControllers/MainViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // MainViewController.h 3 | // SlideZoomMenuDemo 4 | // 5 | // Created by renxiaojian on 15/4/8. 6 | // Copyright (c) 2015年 renxiaojian. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MainViewController : UIViewController 12 | @property (weak, nonatomic) IBOutlet UITableView *tableView; 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // SlideZoomMenuDemo 4 | // 5 | // Created by renxiaojian on 15/3/16. 6 | // Copyright (c) 2015年 renxiaojian. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo/Images.xcassets/bg_mm.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "bg.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SlideZoomMenuDemo/Images.xcassets/mm1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "mm1.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SlideZoomMenuDemo/Images.xcassets/mm2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "mm2.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SlideZoomMenuDemo/Images.xcassets/mm3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "mm3.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SlideZoomMenuDemo/Images.xcassets/mm4.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "mm4.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SlideZoomMenuDemo/Images.xcassets/mm5.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "mm5.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SlideZoomMenuDemo/Images.xcassets/mm6.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "mm6.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SlideZoomMenuDemo/Images.xcassets/pic.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "lmm.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SlideZoomMenuDemo/Images.xcassets/arrow.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "arrow_normal@2x.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SlideZoomMenuDemo/ViewControllers/LeftCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // LeftCell.m 3 | // SlideZoomMenuDemo 4 | // 5 | // Created by jian on 15/4/9. 6 | // Copyright (c) 2015年 renxiaojian. All rights reserved. 7 | // 8 | 9 | #import "LeftCell.h" 10 | 11 | @implementation LeftCell 12 | 13 | - (void)awakeFromNib { 14 | 15 | } 16 | 17 | - (void)setSelected:(BOOL)selected animated:(BOOL)animated { 18 | [super setSelected:selected animated:animated]; 19 | 20 | } 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo/ViewControllers/MainCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // MainCell.h 3 | // SlideZoomMenuDemo 4 | // 5 | // Created by jian on 15/4/9. 6 | // Copyright (c) 2015年 renxiaojian. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MainCell : UITableViewCell 12 | @property (weak, nonatomic) IBOutlet UIImageView *imgView; 13 | @property (weak, nonatomic) IBOutlet UILabel *text; 14 | @property (weak, nonatomic) IBOutlet UILabel *detail; 15 | 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // SlideZoomMenuDemo 4 | // 5 | // Created by renxiaojian on 15/3/16. 6 | // Copyright (c) 2015年 renxiaojian. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "SLideZoomMenuController.h" 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | @property(nonatomic, strong) SLideZoomMenuController *slider; 15 | 16 | 17 | @end 18 | 19 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo/ViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.m 3 | // SlideZoomMenuDemo 4 | // 5 | // Created by renxiaojian on 15/3/16. 6 | // Copyright (c) 2015年 renxiaojian. All rights reserved. 7 | // 8 | 9 | #import "ViewController.h" 10 | 11 | @interface ViewController () 12 | 13 | @end 14 | 15 | @implementation ViewController 16 | 17 | - (void)viewDidLoad { 18 | [super viewDidLoad]; 19 | 20 | } 21 | 22 | - (void)didReceiveMemoryWarning { 23 | [super didReceiveMemoryWarning]; 24 | 25 | } 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo/ViewControllers/LeftViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // LeftViewController.h 3 | // SlideZoomMenuDemo 4 | // 5 | // Created by renxiaojian on 15/3/16. 6 | // Copyright (c) 2015年 renxiaojian. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface LeftViewController : UIViewController 12 | @property (weak, nonatomic) IBOutlet UITableView *tableView; 13 | @property (weak, nonatomic) IBOutlet UIImageView *picImgView; 14 | 15 | @property (nonatomic, assign) BOOL didSelectInitialViewController; 16 | 17 | @property(nonatomic, assign) int selectedIndex; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo/SlideZoomMenu/SLideZoomMenuController.h: -------------------------------------------------------------------------------- 1 | // 2 | // SLideZoomMenuController.h 3 | // SlideZoomMenuDemo 4 | // 5 | // Created by renxiaojian on 15/3/16. 6 | // Copyright (c) 2015年 renxiaojian. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SLideZoomMenuController : UIViewController 12 | 13 | @property(nonatomic, strong) UIViewController *leftViewController; 14 | @property(nonatomic, strong) UIViewController *rootViewController; 15 | @property (weak, nonatomic) IBOutlet UIImageView *bgImageView; 16 | 17 | - (id)initWithRootController:(UIViewController *)rootViewController; 18 | 19 | 20 | @end 21 | 22 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo/ViewControllers/MainCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // MainCell.m 3 | // SlideZoomMenuDemo 4 | // 5 | // Created by jian on 15/4/9. 6 | // Copyright (c) 2015年 renxiaojian. All rights reserved. 7 | // 8 | 9 | #import "MainCell.h" 10 | 11 | @implementation MainCell 12 | 13 | - (void)awakeFromNib { 14 | self.imgView.layer.cornerRadius = 25; 15 | self.imgView.layer.masksToBounds = YES; 16 | self.detail.preferredMaxLayoutWidth = [UIScreen mainScreen].bounds.size.width - 60; 17 | } 18 | 19 | - (void)setSelected:(BOOL)selected animated:(BOOL)animated { 20 | [super setSelected:selected animated:animated]; 21 | 22 | 23 | } 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo.xcodeproj/xcuserdata/jianren.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | SlideZoomMenuDemo.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 5964B9C01AB6DED80013131F 16 | 17 | primary 18 | 19 | 20 | 5964B9D91AB6DED80013131F 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo.xcodeproj/xcuserdata/renxiaojian.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | SlideZoomMenuDemo.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 5964B9C01AB6DED80013131F 16 | 17 | primary 18 | 19 | 20 | 5964B9D91AB6DED80013131F 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | } 33 | ], 34 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /SlideZoomMenuDemoTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | com.line0.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo/ViewControllers/HomeViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // HomeViewController.m 3 | // SlideZoomMenuDemo 4 | // 5 | // Created by jian on 15/4/8. 6 | // Copyright (c) 2015年 renxiaojian. All rights reserved. 7 | // 8 | 9 | #import "HomeViewController.h" 10 | 11 | @interface HomeViewController () 12 | 13 | @end 14 | 15 | @implementation HomeViewController 16 | 17 | - (void)viewDidLoad { 18 | [super viewDidLoad]; 19 | self.title = @"QQ好友"; 20 | } 21 | 22 | - (void)didReceiveMemoryWarning { 23 | [super didReceiveMemoryWarning]; 24 | 25 | } 26 | 27 | /* 28 | #pragma mark - Navigation 29 | 30 | // In a storyboard-based application, you will often want to do a little preparation before navigation 31 | - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 32 | // Get the new view controller using [segue destinationViewController]. 33 | // Pass the selected object to the new view controller. 34 | } 35 | */ 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo/ViewControllers/NextViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // NextViewController.m 3 | // SlideZoomMenuDemo 4 | // 5 | // Created by jian on 15/4/9. 6 | // Copyright (c) 2015年 renxiaojian. All rights reserved. 7 | // 8 | 9 | #import "NextViewController.h" 10 | 11 | @interface NextViewController () 12 | 13 | @end 14 | 15 | @implementation NextViewController 16 | 17 | - (void)viewDidLoad { 18 | [super viewDidLoad]; 19 | self.title = @"next"; 20 | } 21 | 22 | - (void)didReceiveMemoryWarning { 23 | [super didReceiveMemoryWarning]; 24 | // Dispose of any resources that can be recreated. 25 | } 26 | 27 | /* 28 | #pragma mark - Navigation 29 | 30 | // In a storyboard-based application, you will often want to do a little preparation before navigation 31 | - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 32 | // Get the new view controller using [segue destinationViewController]. 33 | // Pass the selected object to the new view controller. 34 | } 35 | */ 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /SlideZoomMenuDemoTests/SlideZoomMenuDemoTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // SlideZoomMenuDemoTests.m 3 | // SlideZoomMenuDemoTests 4 | // 5 | // Created by renxiaojian on 15/3/16. 6 | // Copyright (c) 2015年 renxiaojian. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface SlideZoomMenuDemoTests : XCTestCase 13 | 14 | @end 15 | 16 | @implementation SlideZoomMenuDemoTests 17 | 18 | - (void)setUp { 19 | [super setUp]; 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | } 22 | 23 | - (void)tearDown { 24 | // Put teardown code here. This method is called after the invocation of each test method in the class. 25 | [super tearDown]; 26 | } 27 | 28 | - (void)testExample { 29 | // This is an example of a functional test case. 30 | XCTAssert(YES, @"Pass"); 31 | } 32 | 33 | - (void)testPerformanceExample { 34 | // This is an example of a performance test case. 35 | [self measureBlock:^{ 36 | // Put the code you want to measure the time of here. 37 | }]; 38 | } 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo/ViewControllers/HomeViewController.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo/ViewControllers/NextViewController.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | com.line0.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIMainStoryboardFile 28 | Main 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationLandscapeLeft 37 | UIInterfaceOrientationLandscapeRight 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo.xcodeproj/project.xcworkspace/xcshareddata/SlideZoomMenuDemo.xccheckout: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDESourceControlProjectFavoriteDictionaryKey 6 | 7 | IDESourceControlProjectIdentifier 8 | 30D9D82F-376E-4A5D-BCAF-BA9D2903E3AA 9 | IDESourceControlProjectName 10 | SlideZoomMenuDemo 11 | IDESourceControlProjectOriginsDictionary 12 | 13 | 489A332FA9B2F104A0AD9E42E49E2532F8CE5CF3 14 | https://github.com/Xiaomi6s/SliderZoom.git 15 | 16 | IDESourceControlProjectPath 17 | SlideZoomMenuDemo.xcodeproj 18 | IDESourceControlProjectRelativeInstallPathDictionary 19 | 20 | 489A332FA9B2F104A0AD9E42E49E2532F8CE5CF3 21 | ../.. 22 | 23 | IDESourceControlProjectURL 24 | https://github.com/Xiaomi6s/SliderZoom.git 25 | IDESourceControlProjectVersion 26 | 111 27 | IDESourceControlProjectWCCIdentifier 28 | 489A332FA9B2F104A0AD9E42E49E2532F8CE5CF3 29 | IDESourceControlProjectWCConfigurations 30 | 31 | 32 | IDESourceControlRepositoryExtensionIdentifierKey 33 | public.vcs.git 34 | IDESourceControlWCCIdentifierKey 35 | 489A332FA9B2F104A0AD9E42E49E2532F8CE5CF3 36 | IDESourceControlWCCName 37 | SliderZoom 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo/SlideZoomMenu/SLideZoomMenuController.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo/ViewControllers/LeftCell.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo/AppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.m 3 | // SlideZoomMenuDemo 4 | // 5 | // Created by renxiaojian on 15/3/16. 6 | // Copyright (c) 2015年 renxiaojian. All rights reserved. 7 | // 8 | 9 | #import "AppDelegate.h" 10 | #import "MainViewController.h" 11 | #import "LeftViewController.h" 12 | 13 | @interface AppDelegate () 14 | 15 | @end 16 | 17 | @implementation AppDelegate 18 | 19 | 20 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 21 | MainViewController *mainVC = [MainViewController new]; 22 | LeftViewController *leftVC = [[LeftViewController alloc] init]; 23 | leftVC.selectedIndex = 1; 24 | UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:mainVC]; 25 | SLideZoomMenuController *slideZoomMenu = [[SLideZoomMenuController alloc] initWithRootController:nav]; 26 | slideZoomMenu.leftViewController = leftVC; 27 | self.window.rootViewController = slideZoomMenu; 28 | self.slider = slideZoomMenu; 29 | return YES; 30 | } 31 | 32 | - (void)applicationWillResignActive:(UIApplication *)application { 33 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 34 | // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. 35 | } 36 | 37 | - (void)applicationDidEnterBackground:(UIApplication *)application { 38 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 39 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 40 | } 41 | 42 | - (void)applicationWillEnterForeground:(UIApplication *)application { 43 | // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. 44 | } 45 | 46 | - (void)applicationDidBecomeActive:(UIApplication *)application { 47 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 48 | } 49 | 50 | - (void)applicationWillTerminate:(UIApplication *)application { 51 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 52 | } 53 | 54 | @end 55 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo/ViewControllers/MainViewController.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo/ViewControllers/LeftViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // LeftViewController.m 3 | // SlideZoomMenuDemo 4 | // 5 | // Created by renxiaojian on 15/3/16. 6 | // Copyright (c) 2015年 renxiaojian. All rights reserved. 7 | // 8 | 9 | #import "LeftViewController.h" 10 | #import "AppDelegate.h" 11 | #import "HomeViewController.h" 12 | #import "MainViewController.h" 13 | #import "LeftCell.h" 14 | @interface LeftViewController () 15 | 16 | @property(nonatomic, strong) NSArray *titles; 17 | 18 | @end 19 | 20 | @implementation LeftViewController 21 | 22 | - (void)viewDidLoad { 23 | [super viewDidLoad]; 24 | self.titles = @[@"我的QQ会员",@"QQ钱包",@"网上营业厅",@"我的好友",@"我的群聊",@"我的收藏"]; 25 | self.picImgView.layer.cornerRadius = 30; 26 | self.picImgView.layer.masksToBounds = YES; 27 | self.picImgView.backgroundColor = [UIColor blueColor]; 28 | self.view.backgroundColor = [UIColor clearColor]; 29 | self.tableView.backgroundColor = [UIColor clearColor]; 30 | self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; 31 | [self.tableView registerNib:[UINib nibWithNibName:@"LeftCell" bundle:nil] forCellReuseIdentifier:@"LeftCell"]; 32 | [self performSelector:@selector(setupSlected) withObject:nil afterDelay:0.01]; 33 | 34 | } 35 | 36 | - (void)setupSlected 37 | { 38 | [self tableView:[self tableView] didSelectRowAtIndexPath:[NSIndexPath indexPathForRow:self.selectedIndex inSection:0]]; 39 | [self.tableView selectRowAtIndexPath:[NSIndexPath indexPathForItem:self.selectedIndex inSection:0] animated:NO scrollPosition:UITableViewScrollPositionNone]; 40 | } 41 | 42 | 43 | - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 44 | { 45 | return self.titles.count; 46 | } 47 | 48 | - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 49 | { 50 | return 50; 51 | } 52 | 53 | - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 54 | { 55 | static NSString *cellIdentifier = @"LeftCell"; 56 | UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 57 | cell.backgroundColor = [UIColor clearColor]; 58 | cell.textLabel.font = [UIFont systemFontOfSize:16]; 59 | cell.textLabel.text =[NSString stringWithFormat: @"%@",self.titles[indexPath.row]]; 60 | return cell; 61 | } 62 | 63 | - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 64 | { 65 | AppDelegate *app = [UIApplication sharedApplication].delegate; 66 | if (indexPath.row % 2 == 1) { 67 | HomeViewController *homeVC = [[HomeViewController alloc] init]; 68 | UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:homeVC]; 69 | app.slider.rootViewController = nav; 70 | } 71 | else { 72 | MainViewController *mainVC = [[MainViewController alloc] init]; 73 | UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:mainVC]; 74 | app.slider.rootViewController = nav; 75 | } 76 | } 77 | 78 | - (void)didReceiveMemoryWarning { 79 | [super didReceiveMemoryWarning]; 80 | 81 | } 82 | 83 | 84 | @end 85 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo/Base.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 20 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo/ViewControllers/MainViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // MainViewController.m 3 | // SlideZoomMenuDemo 4 | // 5 | // Created by renxiaojian on 15/4/8. 6 | // Copyright (c) 2015年 renxiaojian. All rights reserved. 7 | // 8 | 9 | #import "MainViewController.h" 10 | #import "MainCell.h" 11 | #import "NextViewController.h" 12 | @interface MainViewController () 13 | 14 | @property(nonatomic, strong) NSArray *dataSoruce; 15 | 16 | @end 17 | 18 | @implementation MainViewController 19 | 20 | - (void)viewDidLoad { 21 | [super viewDidLoad]; 22 | self.title = @"我的会员"; 23 | self.dataSoruce = @[@{@"image":@"mm1",@"name":@"网络的",@"detail":@"网络的美女太多了吧"}, 24 | @{@"image":@"mm2",@"name":@"古典的",@"detail":@"中国古代十大美女,包括妇孺皆知的古代四大美女,沉鱼的西施、闭月的貂蝉、落雁的王昭君、羞花的杨贵妃。另外六位分别是集三千宠爱于一身的冯小怜、一代妖姬苏妲己、命运凄惨的赵飞燕、与西施比美的郑旦、千金一笑的褒姒、因《洛神赋》被传为“洛神”的甄氏(甄宓)"}, 25 | @{@"image":@"mm3",@"name":@"清纯的",@"detail":@"西施浣纱西施,名夷光,春秋战国时期出生于浙江诸暨苎萝村。天生丽质,五官端正,粉面桃花,相貌过人。时越国称臣於吴国,越王勾践卧薪尝胆,谋复国。在国难当头之际,西施忍辱负重,以身许国,与郑旦一起由越王勾践献给吴王夫差,成为吴王最宠爱的妃子。把吴王迷惑得众叛亲离,无心国事,为勾践的东山再起起了掩护的作用。表现了一个爱国女子的高尚思想情操。后吴国终被勾践所灭。吴被灭后,越王勾践班师回朝,携西施以归。越王勾践的夫人潜使人引出,负以大石沉于江中,曰:“此亡国之物,留之何用?”后人不知其事,讹传与范蠡泛舟五湖,不知所终。遂有“载去西施岂无意?恐留倾国误君王”之句。又有言范蠡恐越王复迷其色,乃以计沉于江中,此是错误的说法。"}, 26 | @{@"image":@"mm4",@"name":@"可爱的",@"detail":@"昭君画像王嫱,号昭君,南郡秭归(今湖北省兴山县)人。汉元帝时以“良家子”入选掖庭的。时,呼韩邪来朝,帝敕以五女赐之。王昭君入宫数年,不得见御,积悲怨,乃请掖庭令求行。呼韩邪临辞大会,帝召五女以示之。昭君亦有风华绝代之容,倾国倾城之貌,光明汉宫,顾影徘徊,竦动左右。帝见大惊,意欲留之,而难于失信,遂与匈奴。昭君出塞后,汉匈两族团结和睦,国泰民安。公元前31年,呼韩邪单于亡故,留下一子,名伊屠智伢师,后为匈奴右日逐王。时,王昭君以大局为重,忍受极大委屈,按照匈奴“父死,妻其后母”的风俗,嫁给呼韩邪的长子复株累单于雕陶莫皋。王昭君的历史功绩,不仅仅是她主动出塞和亲,更主要的是她出塞之后,使汉朝与匈奴和好,边塞的烽烟熄灭了50年,增强了汉族与匈奴民族之间的民族团结,是符合汉族和匈奴族人民的利益的。她与她的子女后孙以及姻亲们对胡汉两族人民和睦亲善与团结做出了巨大贡献,因此,她得到历史的好评。元代诗人赵介认为王昭君的功劳,不亚于汉朝名将霍去病。昭君的故事,成为我国历史上流传不衰的民族团结的佳话。红颜薄命,昭君年仅33岁就香消玉损,离开人世。"}, 27 | @{@"image":@"mm5",@"name":@"性感的",@"detail":@"貂蝉画像貂蝉,在关汉卿的剧本里记载此女名为任红昌,山西并州(今忻州)人。是东汉末年司徒王允的歌女,国色天香,有倾国倾城之貌。见东汉王朝被奸臣董卓所操纵,於月下焚香祷告上天,愿为主人担忧。王允眼看董卓将篡夺东汉王朝,设下连环计。王允先把貂蝉暗地里许给吕布,在明把貂蝉献给董卓。吕布英雄年少,董卓老奸巨猾。为了拉拢吕布,董卓收吕布为义子。二人都是好色之人。从此以后,貂蝉周旋於此二人之间,送吕布於秋波,报董卓於妩媚,把二人撩拨得神魂颠倒。吕布自董卓收貂蝉入府为姬之后,心怀不满。王允便说服吕布,铲除了董卓,而貂蝉也跟随了吕布。吕布死后貂蝉不知所踪,罗贯中在《三国演义》里只有两个人物没有记载去向,其中就有貂蝉。而根据我对三国的研究,我认为貂蝉最终是跟随了曹操,而关羽之所以后来又反叛曹操投奔刘备,就和貂蝉有关。"}, 28 | @{@"image":@"mm6",@"name":@"女神",@"detail":@"杨贵妃画像杨贵妃,原名杨玉环,唐代蒲州永乐人(山西永济人)。通晓音律,能歌善舞。最初为唐玄宗的第十八子寿王的王妃,唐玄宗见杨玉环的姿色后,欲纳入宫中为女道士,号太真。天宝四年入宫,得唐玄宗宠幸,封为贵妃父兄均因此而得以势倾天下。贵妃每次乘马,都有大宦官高力士亲至执鞭,贵妃的织绣工就有七百人,更有争献珍玩者。岭南经略史张九章,广陵长史王翼,因所献精美,二人均被升官。于是,百官竟相仿效。杨贵妃喜爱岭南荔枝,就有人千方百计急运新鲜荔枝到长安。后安史之乱,唐玄宗逃离长安,途至马嵬坡,六军不肯前行,说是因为杨国忠(贵妃之堂兄)通于胡人,而致有安禄山之反,玄宗为息军心,乃杀杨国忠。六军又不肯前行,谓杨国忠为贵妃堂兄,堂兄有罪,堂妹亦难免,贵妃亦被缢死于路祠。安史之乱与杨贵妃无关,她成了唐玄宗的替罪羔羊。"}]; 29 | [self.tableView registerNib:[UINib nibWithNibName:@"MainCell" bundle:nil] forCellReuseIdentifier:@"MainCell"]; 30 | 31 | } 32 | 33 | - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 34 | { 35 | return self.dataSoruce.count; 36 | } 37 | 38 | - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 39 | { 40 | MainCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MainCell"]; 41 | cell.imgView.image = [UIImage imageNamed:[self.dataSoruce[indexPath.row] objectForKey:@"image"]]; 42 | cell.text.text = [self.dataSoruce[indexPath.row] objectForKey:@"name"]; 43 | cell.detail.text = [self.dataSoruce[indexPath.row] objectForKey:@"detail"]; 44 | [cell.contentView layoutIfNeeded]; 45 | [cell.contentView updateConstraintsIfNeeded]; 46 | CGSize size = [cell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize]; 47 | return size.height + 1; 48 | 49 | } 50 | 51 | - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 52 | { 53 | MainCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MainCell"]; 54 | cell.imgView.image = [UIImage imageNamed:[self.dataSoruce[indexPath.row] objectForKey:@"image"]]; 55 | cell.text.text = [self.dataSoruce[indexPath.row] objectForKey:@"name"]; 56 | cell.detail.text = [self.dataSoruce[indexPath.row] objectForKey:@"detail"]; 57 | return cell; 58 | } 59 | 60 | 61 | - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 62 | { 63 | NextViewController *nextVC = [NextViewController new]; 64 | [self.navigationController pushViewController:nextVC animated:YES]; 65 | } 66 | 67 | 68 | 69 | - (void)didReceiveMemoryWarning { 70 | [super didReceiveMemoryWarning]; 71 | 72 | } 73 | 74 | 75 | 76 | @end 77 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo.xcodeproj/xcuserdata/jianren.xcuserdatad/xcschemes/SlideZoomMenuDemo.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 29 | 35 | 36 | 37 | 38 | 39 | 44 | 45 | 47 | 53 | 54 | 55 | 56 | 57 | 63 | 64 | 65 | 66 | 75 | 77 | 83 | 84 | 85 | 86 | 87 | 88 | 94 | 96 | 102 | 103 | 104 | 105 | 107 | 108 | 111 | 112 | 113 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo.xcodeproj/xcuserdata/renxiaojian.xcuserdatad/xcschemes/SlideZoomMenuDemo.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 29 | 35 | 36 | 37 | 38 | 39 | 44 | 45 | 47 | 53 | 54 | 55 | 56 | 57 | 63 | 64 | 65 | 66 | 75 | 77 | 83 | 84 | 85 | 86 | 87 | 88 | 94 | 96 | 102 | 103 | 104 | 105 | 107 | 108 | 111 | 112 | 113 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo/ViewControllers/MainCell.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 31 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo/ViewControllers/LeftViewController.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 46 | 53 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo/SlideZoomMenu/SLideZoomMenuController.m: -------------------------------------------------------------------------------- 1 | // 2 | // SLideZoomMenuController.m 3 | // SlideZoomMenuDemo 4 | // 5 | // Created by renxiaojian on 15/3/16. 6 | // Copyright (c) 2015年 renxiaojian. All rights reserved. 7 | // 8 | 9 | #import "SLideZoomMenuController.h" 10 | 11 | @interface SLideZoomMenuController () 12 | 13 | @property(nonatomic, assign) BOOL isShow; 14 | @property(nonatomic, assign) CGPoint startPoint; 15 | @property(nonatomic, strong) UIPanGestureRecognizer *rightPan; 16 | @property(nonatomic, strong) UIPanGestureRecognizer *leftPan; 17 | @property(nonatomic, strong) UITapGestureRecognizer *tap; 18 | 19 | @end 20 | 21 | @implementation SLideZoomMenuController 22 | 23 | - (id)initWithRootController:(UIViewController *)rootViewController 24 | { 25 | self = [self init]; 26 | if (self) { 27 | self.rootViewController = rootViewController; 28 | 29 | } 30 | return self; 31 | } 32 | 33 | - (id)init 34 | { 35 | self = [super init]; 36 | if (self) { 37 | self.isShow = NO; 38 | } 39 | return self; 40 | } 41 | 42 | - (void)viewDidLoad { 43 | [super viewDidLoad]; 44 | 45 | } 46 | 47 | - (void)setupRoot 48 | { 49 | if (self.rootViewController) { 50 | UIView *view = self.rootViewController.view; 51 | view.frame = self.view.frame; 52 | [self.bgImageView addSubview:view]; 53 | [self addmenuItem]; 54 | } 55 | } 56 | 57 | - (void)addmenuItem 58 | { 59 | UIViewController *mainViewcontroller = nil; 60 | if ([self.rootViewController isKindOfClass:[UINavigationController class]]) { 61 | UINavigationController *nav = (UINavigationController *)self.rootViewController; 62 | mainViewcontroller = nav.viewControllers.firstObject; 63 | } 64 | UIBarButtonItem *barItem = [[UIBarButtonItem alloc] initWithTitle:@"左" style:UIBarButtonItemStylePlain target:self action:@selector(showLeft)]; 65 | mainViewcontroller.navigationItem.leftBarButtonItem = barItem; 66 | } 67 | 68 | - (void)setRootViewController:(UIViewController *)rootViewController 69 | { 70 | if (_rootViewController) { 71 | [_rootViewController.view removeFromSuperview]; 72 | _rootViewController = nil; 73 | } 74 | _rootViewController = rootViewController; 75 | [self setupRoot]; 76 | UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)]; 77 | pan.delegate = (id )self; 78 | [self.rootViewController.view addGestureRecognizer:pan]; 79 | self.rightPan = pan; 80 | 81 | UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)]; 82 | [self.rootViewController.view addGestureRecognizer:tap]; 83 | self.tap = tap; 84 | tap.enabled = NO; 85 | 86 | UIPanGestureRecognizer *leftPan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handleLeftPan:)]; 87 | leftPan.delegate = (id )self; 88 | [self.rootViewController.view addGestureRecognizer:leftPan]; 89 | self.leftPan = leftPan; 90 | self.leftPan.enabled = NO; 91 | if (self.isShow) { 92 | 93 | CGRect rect = self.rootViewController.view.frame; 94 | rect.origin.x = self.view.bounds.size.width - 60; 95 | rect.origin.y = self.view.bounds.size.height/4; 96 | rect.size.height = self.view.bounds.size.height/2; 97 | rect.size.width = self.view.bounds.size.width/2; 98 | self.rootViewController.view.transform = CGAffineTransformMakeScale(0.5, 0.5); 99 | self.rootViewController.view.frame = rect; 100 | [self showLeft]; 101 | } 102 | 103 | } 104 | 105 | - (void)setLeftViewController:(UIViewController *)leftViewController 106 | { 107 | _leftViewController = leftViewController; 108 | UIView *view = self.leftViewController.view; 109 | view.frame = self.view.frame; 110 | [self.bgImageView insertSubview:view atIndex:0]; 111 | [self performSelector:@selector(setupLeft) withObject:nil afterDelay:0.01]; 112 | 113 | } 114 | 115 | - (void)setupLeft 116 | { 117 | 118 | CGRect rect = self.leftViewController.view.frame; 119 | rect.origin.x = -60; 120 | rect.origin.y = self.view.bounds.size.height/4; 121 | rect.size.height = self.view.bounds.size.height/2; 122 | rect.size.width = self.view.bounds.size.width/2; 123 | self.leftViewController.view.transform = CGAffineTransformMakeScale(0.5, 0.5); 124 | self.leftViewController.view.frame = rect; 125 | self.leftViewController.view.alpha = 0; 126 | 127 | } 128 | 129 | - (void)rootIsSCrolling:(BOOL)isScroll 130 | { 131 | UIViewController *mainViewcontroller = nil; 132 | if ([self.rootViewController isKindOfClass:[UINavigationController class]]) { 133 | UINavigationController *nav = (UINavigationController *)self.rootViewController; 134 | mainViewcontroller = nav.viewControllers.firstObject; 135 | mainViewcontroller.view.userInteractionEnabled = isScroll; 136 | } 137 | } 138 | 139 | - (void)handleLeftPan:(UIPanGestureRecognizer *)leftPan 140 | { 141 | CGPoint locationPoint = [leftPan locationInView:self.view]; 142 | CGFloat offsetX = - (locationPoint.x - self.startPoint.x); 143 | if (leftPan.state == UIGestureRecognizerStateChanged) { 144 | if (locationPoint.x -self.startPoint.x <= -6) { 145 | CGFloat leftOffsetX = offsetX * 60/(self.view.bounds.size.width - 60); 146 | CGFloat rootZoom = offsetX/(self.view.bounds.size.width - 60) * 0.5; 147 | CGRect rootRect = self.rootViewController.view.frame; 148 | rootRect.origin.x = [UIScreen mainScreen].bounds.size.width- 60 - offsetX; 149 | self.rootViewController.view.frame = rootRect; 150 | self.rootViewController.view.transform = CGAffineTransformMakeScale(0.5+ rootZoom, 0.5 +rootZoom); 151 | CGRect leftRect = self.leftViewController.view.frame; 152 | leftRect.origin.x = -leftOffsetX; 153 | self.leftViewController.view.frame = leftRect; 154 | self.leftViewController.view.transform = CGAffineTransformMakeScale(1-rootZoom ,1-rootZoom); 155 | self.leftViewController.view.alpha = 1.0 - offsetX/(self.view.bounds.size.width - 60) *1.0; 156 | } 157 | else 158 | { 159 | return; 160 | } 161 | if (offsetX >= (self.view.bounds.size.width - 60)) { 162 | leftPan.enabled = NO; 163 | } 164 | } 165 | else if (leftPan.state == UIGestureRecognizerStateCancelled || leftPan.state == UIGestureRecognizerStateEnded) 166 | { 167 | if (offsetX >= [UIScreen mainScreen].bounds.size.width/2) { 168 | CGRect rect = self.rootViewController.view.frame; 169 | rect.origin.x = 0; 170 | rect.origin.y = 0; 171 | rect.size.height = self.view.bounds.size.height; 172 | rect.size.width = self.view.bounds.size.width; 173 | CGRect rect2 = self.leftViewController.view.frame; 174 | rect2.origin.x = -60; 175 | rect2.origin.y = self.view.bounds.size.height/4; 176 | rect2.size.height = self.view.bounds.size.height/2; 177 | rect2.size.width = self.view.bounds.size.width/2; 178 | [UIView animateWithDuration:.25 animations:^{ 179 | self.rootViewController.view.transform = CGAffineTransformMakeScale(1, 1); 180 | self.rootViewController.view.frame = rect; 181 | self.leftViewController.view.transform = CGAffineTransformMakeScale(0.5, 0.5); 182 | self.leftViewController.view.frame = rect2; 183 | self.leftViewController.view.alpha = 0; 184 | } completion:^(BOOL finished) { 185 | self.isShow = !self.isShow; 186 | self.rightPan.enabled = YES; 187 | self.leftPan.enabled = NO; 188 | self.tap.enabled = NO; 189 | [self rootIsSCrolling:YES]; 190 | }]; 191 | 192 | 193 | } 194 | else 195 | { 196 | CGRect rect = self.rootViewController.view.frame; 197 | rect.origin.x = self.view.bounds.size.width - 60; 198 | rect.origin.y = self.view.bounds.size.height/4; 199 | rect.size.height = self.view.bounds.size.height/2; 200 | rect.size.width = self.view.bounds.size.width/2; 201 | CGRect rect2 = self.leftViewController.view.frame; 202 | rect2.origin.x = 0; 203 | rect2.origin.y = 0; 204 | rect2.size.height = self.view.bounds.size.height; 205 | rect2.size.width = self.view.bounds.size.width; 206 | [UIView animateWithDuration:0.25 animations:^{ 207 | self.rootViewController.view.transform = CGAffineTransformMakeScale(0.5, 0.5); 208 | self.rootViewController.view.frame = rect; 209 | self.leftViewController.view.transform = CGAffineTransformMakeScale(1, 1); 210 | self.leftViewController.view.frame = rect2; 211 | self.leftViewController.view.alpha = 1; 212 | } completion:^(BOOL finished) { 213 | self.isShow = YES; 214 | self.leftPan.enabled = YES; 215 | self.tap.enabled = YES; 216 | [self rootIsSCrolling:NO]; 217 | }]; 218 | 219 | } 220 | 221 | } 222 | 223 | } 224 | 225 | - (void)handleTap:(UITapGestureRecognizer *)tap 226 | { 227 | if (self.isShow) { 228 | [self showLeft]; 229 | } 230 | } 231 | 232 | - (void)handlePan:(UIPanGestureRecognizer *)pan 233 | { 234 | CGPoint locationPoint = [pan locationInView:self.view]; 235 | CGFloat offsetX = locationPoint.x - self.startPoint.x; 236 | if (pan.state == UIGestureRecognizerStateChanged) { 237 | if (locationPoint.x -self.startPoint.x >=6) { 238 | CGFloat leftOffsetX = offsetX * 60/(self.view.bounds.size.width - 60); 239 | CGFloat rootZoom = offsetX/(self.view.bounds.size.width - 60) * 0.5; 240 | CGRect rootRect = self.rootViewController.view.frame; 241 | rootRect.origin.x = offsetX; 242 | self.rootViewController.view.frame = rootRect; 243 | self.rootViewController.view.transform = CGAffineTransformMakeScale(1-rootZoom, 1-rootZoom); 244 | CGRect leftRect = self.leftViewController.view.frame; 245 | leftRect.origin.x = leftOffsetX - 60; 246 | leftRect.size.width = self.view.bounds.size.width/2 + leftOffsetX *self.view.bounds.size.width/2/60; 247 | self.leftViewController.view.frame = leftRect; 248 | self.leftViewController.view.transform = CGAffineTransformMakeScale(0.5 +rootZoom , 0.5 +rootZoom); 249 | self.leftViewController.view.alpha = offsetX/(self.view.bounds.size.width - 60) *1.0; 250 | } 251 | else 252 | { 253 | return; 254 | } 255 | 256 | if (offsetX >= (self.view.bounds.size.width - 60)) { 257 | pan.enabled = NO; 258 | } 259 | } 260 | else if (pan.state == UIGestureRecognizerStateEnded || pan.state == UIGestureRecognizerStateCancelled) 261 | { 262 | if (offsetX >= [UIScreen mainScreen].bounds.size.width/2) { 263 | CGRect rect = self.rootViewController.view.frame; 264 | rect.origin.x = self.view.bounds.size.width - 60; 265 | rect.origin.y = self.view.bounds.size.height/4; 266 | rect.size.height = self.view.bounds.size.height/2; 267 | rect.size.width = self.view.bounds.size.width/2; 268 | CGRect rect2 = self.leftViewController.view.frame; 269 | rect2.origin.x = 0; 270 | rect2.origin.y = 0; 271 | rect2.size.height = self.view.bounds.size.height; 272 | rect2.size.width = self.view.bounds.size.width; 273 | [UIView animateWithDuration:0.25 animations:^{ 274 | self.rootViewController.view.transform = CGAffineTransformMakeScale(0.5, 0.5); 275 | self.rootViewController.view.frame = rect; 276 | self.leftViewController.view.transform = CGAffineTransformMakeScale(1, 1); 277 | self.leftViewController.view.frame = rect2; 278 | self.leftViewController.view.alpha = 1; 279 | } completion:^(BOOL finished) { 280 | self.isShow = YES; 281 | self.leftPan.enabled = YES; 282 | self.tap.enabled = YES; 283 | [self rootIsSCrolling:NO]; 284 | }]; 285 | 286 | 287 | } 288 | else 289 | { 290 | CGRect rect = self.rootViewController.view.frame; 291 | rect.origin.x = 0; 292 | rect.origin.y = 0; 293 | rect.size.height = self.view.bounds.size.height; 294 | rect.size.width = self.view.bounds.size.width; 295 | CGRect rect2 = self.leftViewController.view.frame; 296 | rect2.origin.x = -60; 297 | rect2.origin.y = self.view.bounds.size.height/4; 298 | rect2.size.height = self.view.bounds.size.height/2; 299 | rect2.size.width = self.view.bounds.size.width/2; 300 | [UIView animateWithDuration:0.15 animations:^{ 301 | self.rootViewController.view.transform = CGAffineTransformMakeScale(1.0, 1.0); 302 | self.rootViewController.view.frame = rect; 303 | self.leftViewController.view.transform = CGAffineTransformMakeScale(0.5, 0.5); 304 | self.leftViewController.view.frame = rect2; 305 | self.leftViewController.view.alpha = 0; 306 | } completion:^(BOOL finished) { 307 | self.isShow = NO; 308 | self.tap.enabled = NO; 309 | }]; 310 | 311 | } 312 | } 313 | 314 | 315 | } 316 | 317 | - (void)showLeft 318 | { 319 | if (!self.isShow) { 320 | CGRect rect = self.rootViewController.view.frame; 321 | rect.origin.x = [UIScreen mainScreen].bounds.size.width- 60; 322 | rect.origin.y =self.view.bounds.size.height/4; 323 | rect.size.height = self.view.bounds.size.height/2; 324 | rect.size.width = self.view.bounds.size.width/2; 325 | CGRect rect2 = self.leftViewController.view.frame; 326 | rect2.origin.x = 0; 327 | rect2.origin.y = 0; 328 | rect2.size.height = self.view.bounds.size.height; 329 | rect2.size.width = self.view.bounds.size.width; 330 | [UIView animateWithDuration:.35 animations:^{ 331 | self.rootViewController.view.transform = CGAffineTransformMakeScale(0.5, 0.5); 332 | self.rootViewController.view.frame = rect; 333 | self.leftViewController.view.transform = CGAffineTransformMakeScale(1, 1); 334 | self.leftViewController.view.frame = rect2; 335 | self.leftViewController.view.alpha = 1.0; 336 | } completion:^(BOOL finished) { 337 | self.isShow = !self.isShow; 338 | self.leftPan.enabled = YES; 339 | self.tap.enabled = YES; 340 | [self rootIsSCrolling:NO]; 341 | }]; 342 | 343 | } 344 | else 345 | { 346 | CGRect rect = self.rootViewController.view.frame; 347 | rect.origin.x = 0; 348 | rect.origin.y = 0; 349 | rect.size.height = self.view.bounds.size.height; 350 | rect.size.width = self.view.bounds.size.width; 351 | CGRect rect2 = self.leftViewController.view.frame; 352 | rect2.origin.x = -60; 353 | rect2.origin.y = self.view.bounds.size.height/4; 354 | rect2.size.height = self.view.bounds.size.height/2; 355 | rect2.size.width = self.view.bounds.size.width/2; 356 | [UIView animateWithDuration:.35 animations:^{ 357 | self.rootViewController.view.transform = CGAffineTransformMakeScale(1, 1); 358 | self.rootViewController.view.frame = rect; 359 | self.leftViewController.view.transform = CGAffineTransformMakeScale(0.5, 0.5); 360 | self.leftViewController.view.frame = rect2; 361 | self.leftViewController.view.alpha = 0; 362 | } completion:^(BOOL finished) { 363 | self.isShow = !self.isShow; 364 | self.rightPan.enabled = YES; 365 | self.leftPan.enabled = NO; 366 | self.tap.enabled = NO; 367 | [self rootIsSCrolling:YES]; 368 | }]; 369 | 370 | } 371 | } 372 | 373 | 374 | #pragma mark- UIGestureRecognizerDelegate 375 | 376 | - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer 377 | { 378 | self.startPoint = [gestureRecognizer locationInView:self.view]; 379 | if (gestureRecognizer == self.rightPan) { 380 | if ([self.rootViewController isKindOfClass:[UINavigationController class]]) { 381 | UINavigationController *nav = (UINavigationController *)self.rootViewController; 382 | NSArray *viewControllers = nav.viewControllers; 383 | if (viewControllers.count > 1) { 384 | return NO; 385 | } 386 | } 387 | 388 | } 389 | return YES; 390 | } 391 | 392 | - (void)didReceiveMemoryWarning { 393 | [super didReceiveMemoryWarning]; 394 | 395 | } 396 | 397 | 398 | @end 399 | -------------------------------------------------------------------------------- /SlideZoomMenuDemo.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 5964B9C71AB6DED80013131F /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 5964B9C61AB6DED80013131F /* main.m */; }; 11 | 5964B9CA1AB6DED80013131F /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 5964B9C91AB6DED80013131F /* AppDelegate.m */; }; 12 | 5964B9CD1AB6DED80013131F /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5964B9CC1AB6DED80013131F /* ViewController.m */; }; 13 | 5964B9D01AB6DED80013131F /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5964B9CE1AB6DED80013131F /* Main.storyboard */; }; 14 | 5964B9D21AB6DED80013131F /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 5964B9D11AB6DED80013131F /* Images.xcassets */; }; 15 | 5964B9D51AB6DED80013131F /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5964B9D31AB6DED80013131F /* LaunchScreen.xib */; }; 16 | 5964B9E11AB6DED80013131F /* SlideZoomMenuDemoTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 5964B9E01AB6DED80013131F /* SlideZoomMenuDemoTests.m */; }; 17 | 5964B9EF1AB6DF4D0013131F /* LeftViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5964B9ED1AB6DF4D0013131F /* LeftViewController.m */; }; 18 | 5964B9F01AB6DF4D0013131F /* LeftViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5964B9EE1AB6DF4D0013131F /* LeftViewController.xib */; }; 19 | 5964B9F41AB6DF5C0013131F /* MainViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5964B9F21AB6DF5C0013131F /* MainViewController.m */; }; 20 | 5964B9F51AB6DF5C0013131F /* MainViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5964B9F31AB6DF5C0013131F /* MainViewController.xib */; }; 21 | 5964B9F91AB6DFA80013131F /* SLideZoomMenuController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5964B9F71AB6DFA80013131F /* SLideZoomMenuController.m */; }; 22 | 5964B9FA1AB6DFA80013131F /* SLideZoomMenuController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5964B9F81AB6DFA80013131F /* SLideZoomMenuController.xib */; }; 23 | D459B7C31AD5809F0008B93E /* HomeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D459B7C11AD5809F0008B93E /* HomeViewController.m */; }; 24 | D459B7C41AD5809F0008B93E /* HomeViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D459B7C21AD5809F0008B93E /* HomeViewController.xib */; }; 25 | D48298BC1AD67344002E7955 /* LeftCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D48298BA1AD67344002E7955 /* LeftCell.m */; }; 26 | D48298BD1AD67344002E7955 /* LeftCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D48298BB1AD67344002E7955 /* LeftCell.xib */; }; 27 | D48298C11AD67867002E7955 /* MainCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D48298BF1AD67867002E7955 /* MainCell.m */; }; 28 | D48298C21AD67867002E7955 /* MainCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D48298C01AD67867002E7955 /* MainCell.xib */; }; 29 | D48298C61AD68C4B002E7955 /* NextViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D48298C41AD68C4B002E7955 /* NextViewController.m */; }; 30 | D48298C71AD68C4B002E7955 /* NextViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D48298C51AD68C4B002E7955 /* NextViewController.xib */; }; 31 | /* End PBXBuildFile section */ 32 | 33 | /* Begin PBXContainerItemProxy section */ 34 | 5964B9DB1AB6DED80013131F /* PBXContainerItemProxy */ = { 35 | isa = PBXContainerItemProxy; 36 | containerPortal = 5964B9B91AB6DED80013131F /* Project object */; 37 | proxyType = 1; 38 | remoteGlobalIDString = 5964B9C01AB6DED80013131F; 39 | remoteInfo = SlideZoomMenuDemo; 40 | }; 41 | /* End PBXContainerItemProxy section */ 42 | 43 | /* Begin PBXFileReference section */ 44 | 5964B9C11AB6DED80013131F /* SlideZoomMenuDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SlideZoomMenuDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; 45 | 5964B9C51AB6DED80013131F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 46 | 5964B9C61AB6DED80013131F /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 47 | 5964B9C81AB6DED80013131F /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 48 | 5964B9C91AB6DED80013131F /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; 49 | 5964B9CB1AB6DED80013131F /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; 50 | 5964B9CC1AB6DED80013131F /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; 51 | 5964B9CF1AB6DED80013131F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 52 | 5964B9D11AB6DED80013131F /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; 53 | 5964B9D41AB6DED80013131F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; 54 | 5964B9DA1AB6DED80013131F /* SlideZoomMenuDemoTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SlideZoomMenuDemoTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 55 | 5964B9DF1AB6DED80013131F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 56 | 5964B9E01AB6DED80013131F /* SlideZoomMenuDemoTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SlideZoomMenuDemoTests.m; sourceTree = ""; }; 57 | 5964B9EC1AB6DF4D0013131F /* LeftViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LeftViewController.h; sourceTree = ""; }; 58 | 5964B9ED1AB6DF4D0013131F /* LeftViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LeftViewController.m; sourceTree = ""; }; 59 | 5964B9EE1AB6DF4D0013131F /* LeftViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LeftViewController.xib; sourceTree = ""; }; 60 | 5964B9F11AB6DF5C0013131F /* MainViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MainViewController.h; sourceTree = ""; }; 61 | 5964B9F21AB6DF5C0013131F /* MainViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MainViewController.m; sourceTree = ""; }; 62 | 5964B9F31AB6DF5C0013131F /* MainViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MainViewController.xib; sourceTree = ""; }; 63 | 5964B9F61AB6DFA80013131F /* SLideZoomMenuController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SLideZoomMenuController.h; sourceTree = ""; }; 64 | 5964B9F71AB6DFA80013131F /* SLideZoomMenuController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SLideZoomMenuController.m; sourceTree = ""; }; 65 | 5964B9F81AB6DFA80013131F /* SLideZoomMenuController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SLideZoomMenuController.xib; sourceTree = ""; }; 66 | D459B7C01AD5809F0008B93E /* HomeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HomeViewController.h; sourceTree = ""; }; 67 | D459B7C11AD5809F0008B93E /* HomeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HomeViewController.m; sourceTree = ""; }; 68 | D459B7C21AD5809F0008B93E /* HomeViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HomeViewController.xib; sourceTree = ""; }; 69 | D48298B91AD67344002E7955 /* LeftCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LeftCell.h; sourceTree = ""; }; 70 | D48298BA1AD67344002E7955 /* LeftCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LeftCell.m; sourceTree = ""; }; 71 | D48298BB1AD67344002E7955 /* LeftCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LeftCell.xib; sourceTree = ""; }; 72 | D48298BE1AD67867002E7955 /* MainCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MainCell.h; sourceTree = ""; }; 73 | D48298BF1AD67867002E7955 /* MainCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MainCell.m; sourceTree = ""; }; 74 | D48298C01AD67867002E7955 /* MainCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MainCell.xib; sourceTree = ""; }; 75 | D48298C31AD68C4B002E7955 /* NextViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NextViewController.h; sourceTree = ""; }; 76 | D48298C41AD68C4B002E7955 /* NextViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NextViewController.m; sourceTree = ""; }; 77 | D48298C51AD68C4B002E7955 /* NextViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = NextViewController.xib; sourceTree = ""; }; 78 | /* End PBXFileReference section */ 79 | 80 | /* Begin PBXFrameworksBuildPhase section */ 81 | 5964B9BE1AB6DED80013131F /* Frameworks */ = { 82 | isa = PBXFrameworksBuildPhase; 83 | buildActionMask = 2147483647; 84 | files = ( 85 | ); 86 | runOnlyForDeploymentPostprocessing = 0; 87 | }; 88 | 5964B9D71AB6DED80013131F /* Frameworks */ = { 89 | isa = PBXFrameworksBuildPhase; 90 | buildActionMask = 2147483647; 91 | files = ( 92 | ); 93 | runOnlyForDeploymentPostprocessing = 0; 94 | }; 95 | /* End PBXFrameworksBuildPhase section */ 96 | 97 | /* Begin PBXGroup section */ 98 | 5964B9B81AB6DED80013131F = { 99 | isa = PBXGroup; 100 | children = ( 101 | 5964B9C31AB6DED80013131F /* SlideZoomMenuDemo */, 102 | 5964B9DD1AB6DED80013131F /* SlideZoomMenuDemoTests */, 103 | 5964B9C21AB6DED80013131F /* Products */, 104 | ); 105 | sourceTree = ""; 106 | }; 107 | 5964B9C21AB6DED80013131F /* Products */ = { 108 | isa = PBXGroup; 109 | children = ( 110 | 5964B9C11AB6DED80013131F /* SlideZoomMenuDemo.app */, 111 | 5964B9DA1AB6DED80013131F /* SlideZoomMenuDemoTests.xctest */, 112 | ); 113 | name = Products; 114 | sourceTree = ""; 115 | }; 116 | 5964B9C31AB6DED80013131F /* SlideZoomMenuDemo */ = { 117 | isa = PBXGroup; 118 | children = ( 119 | 5964B9C81AB6DED80013131F /* AppDelegate.h */, 120 | 5964B9C91AB6DED80013131F /* AppDelegate.m */, 121 | 5964B9CB1AB6DED80013131F /* ViewController.h */, 122 | 5964B9CC1AB6DED80013131F /* ViewController.m */, 123 | 5964B9CE1AB6DED80013131F /* Main.storyboard */, 124 | 5964B9EA1AB6DF330013131F /* ViewControllers */, 125 | 5964B9EB1AB6DF330013131F /* SlideZoomMenu */, 126 | 5964B9D11AB6DED80013131F /* Images.xcassets */, 127 | 5964B9D31AB6DED80013131F /* LaunchScreen.xib */, 128 | 5964B9C41AB6DED80013131F /* Supporting Files */, 129 | ); 130 | path = SlideZoomMenuDemo; 131 | sourceTree = ""; 132 | }; 133 | 5964B9C41AB6DED80013131F /* Supporting Files */ = { 134 | isa = PBXGroup; 135 | children = ( 136 | 5964B9C51AB6DED80013131F /* Info.plist */, 137 | 5964B9C61AB6DED80013131F /* main.m */, 138 | ); 139 | name = "Supporting Files"; 140 | sourceTree = ""; 141 | }; 142 | 5964B9DD1AB6DED80013131F /* SlideZoomMenuDemoTests */ = { 143 | isa = PBXGroup; 144 | children = ( 145 | 5964B9E01AB6DED80013131F /* SlideZoomMenuDemoTests.m */, 146 | 5964B9DE1AB6DED80013131F /* Supporting Files */, 147 | ); 148 | path = SlideZoomMenuDemoTests; 149 | sourceTree = ""; 150 | }; 151 | 5964B9DE1AB6DED80013131F /* Supporting Files */ = { 152 | isa = PBXGroup; 153 | children = ( 154 | 5964B9DF1AB6DED80013131F /* Info.plist */, 155 | ); 156 | name = "Supporting Files"; 157 | sourceTree = ""; 158 | }; 159 | 5964B9EA1AB6DF330013131F /* ViewControllers */ = { 160 | isa = PBXGroup; 161 | children = ( 162 | D48298B91AD67344002E7955 /* LeftCell.h */, 163 | D48298BA1AD67344002E7955 /* LeftCell.m */, 164 | D48298BB1AD67344002E7955 /* LeftCell.xib */, 165 | D48298BE1AD67867002E7955 /* MainCell.h */, 166 | D48298BF1AD67867002E7955 /* MainCell.m */, 167 | D48298C01AD67867002E7955 /* MainCell.xib */, 168 | 5964B9EC1AB6DF4D0013131F /* LeftViewController.h */, 169 | 5964B9ED1AB6DF4D0013131F /* LeftViewController.m */, 170 | 5964B9EE1AB6DF4D0013131F /* LeftViewController.xib */, 171 | 5964B9F11AB6DF5C0013131F /* MainViewController.h */, 172 | 5964B9F21AB6DF5C0013131F /* MainViewController.m */, 173 | 5964B9F31AB6DF5C0013131F /* MainViewController.xib */, 174 | D459B7C01AD5809F0008B93E /* HomeViewController.h */, 175 | D459B7C11AD5809F0008B93E /* HomeViewController.m */, 176 | D459B7C21AD5809F0008B93E /* HomeViewController.xib */, 177 | D48298C31AD68C4B002E7955 /* NextViewController.h */, 178 | D48298C41AD68C4B002E7955 /* NextViewController.m */, 179 | D48298C51AD68C4B002E7955 /* NextViewController.xib */, 180 | ); 181 | path = ViewControllers; 182 | sourceTree = ""; 183 | }; 184 | 5964B9EB1AB6DF330013131F /* SlideZoomMenu */ = { 185 | isa = PBXGroup; 186 | children = ( 187 | 5964B9F61AB6DFA80013131F /* SLideZoomMenuController.h */, 188 | 5964B9F71AB6DFA80013131F /* SLideZoomMenuController.m */, 189 | 5964B9F81AB6DFA80013131F /* SLideZoomMenuController.xib */, 190 | ); 191 | path = SlideZoomMenu; 192 | sourceTree = ""; 193 | }; 194 | /* End PBXGroup section */ 195 | 196 | /* Begin PBXNativeTarget section */ 197 | 5964B9C01AB6DED80013131F /* SlideZoomMenuDemo */ = { 198 | isa = PBXNativeTarget; 199 | buildConfigurationList = 5964B9E41AB6DED80013131F /* Build configuration list for PBXNativeTarget "SlideZoomMenuDemo" */; 200 | buildPhases = ( 201 | 5964B9BD1AB6DED80013131F /* Sources */, 202 | 5964B9BE1AB6DED80013131F /* Frameworks */, 203 | 5964B9BF1AB6DED80013131F /* Resources */, 204 | ); 205 | buildRules = ( 206 | ); 207 | dependencies = ( 208 | ); 209 | name = SlideZoomMenuDemo; 210 | productName = SlideZoomMenuDemo; 211 | productReference = 5964B9C11AB6DED80013131F /* SlideZoomMenuDemo.app */; 212 | productType = "com.apple.product-type.application"; 213 | }; 214 | 5964B9D91AB6DED80013131F /* SlideZoomMenuDemoTests */ = { 215 | isa = PBXNativeTarget; 216 | buildConfigurationList = 5964B9E71AB6DED80013131F /* Build configuration list for PBXNativeTarget "SlideZoomMenuDemoTests" */; 217 | buildPhases = ( 218 | 5964B9D61AB6DED80013131F /* Sources */, 219 | 5964B9D71AB6DED80013131F /* Frameworks */, 220 | 5964B9D81AB6DED80013131F /* Resources */, 221 | ); 222 | buildRules = ( 223 | ); 224 | dependencies = ( 225 | 5964B9DC1AB6DED80013131F /* PBXTargetDependency */, 226 | ); 227 | name = SlideZoomMenuDemoTests; 228 | productName = SlideZoomMenuDemoTests; 229 | productReference = 5964B9DA1AB6DED80013131F /* SlideZoomMenuDemoTests.xctest */; 230 | productType = "com.apple.product-type.bundle.unit-test"; 231 | }; 232 | /* End PBXNativeTarget section */ 233 | 234 | /* Begin PBXProject section */ 235 | 5964B9B91AB6DED80013131F /* Project object */ = { 236 | isa = PBXProject; 237 | attributes = { 238 | LastUpgradeCheck = 0620; 239 | ORGANIZATIONNAME = renxiaojian; 240 | TargetAttributes = { 241 | 5964B9C01AB6DED80013131F = { 242 | CreatedOnToolsVersion = 6.2; 243 | }; 244 | 5964B9D91AB6DED80013131F = { 245 | CreatedOnToolsVersion = 6.2; 246 | TestTargetID = 5964B9C01AB6DED80013131F; 247 | }; 248 | }; 249 | }; 250 | buildConfigurationList = 5964B9BC1AB6DED80013131F /* Build configuration list for PBXProject "SlideZoomMenuDemo" */; 251 | compatibilityVersion = "Xcode 3.2"; 252 | developmentRegion = English; 253 | hasScannedForEncodings = 0; 254 | knownRegions = ( 255 | en, 256 | Base, 257 | ); 258 | mainGroup = 5964B9B81AB6DED80013131F; 259 | productRefGroup = 5964B9C21AB6DED80013131F /* Products */; 260 | projectDirPath = ""; 261 | projectRoot = ""; 262 | targets = ( 263 | 5964B9C01AB6DED80013131F /* SlideZoomMenuDemo */, 264 | 5964B9D91AB6DED80013131F /* SlideZoomMenuDemoTests */, 265 | ); 266 | }; 267 | /* End PBXProject section */ 268 | 269 | /* Begin PBXResourcesBuildPhase section */ 270 | 5964B9BF1AB6DED80013131F /* Resources */ = { 271 | isa = PBXResourcesBuildPhase; 272 | buildActionMask = 2147483647; 273 | files = ( 274 | D48298BD1AD67344002E7955 /* LeftCell.xib in Resources */, 275 | 5964B9D01AB6DED80013131F /* Main.storyboard in Resources */, 276 | D48298C21AD67867002E7955 /* MainCell.xib in Resources */, 277 | 5964B9FA1AB6DFA80013131F /* SLideZoomMenuController.xib in Resources */, 278 | 5964B9F01AB6DF4D0013131F /* LeftViewController.xib in Resources */, 279 | 5964B9F51AB6DF5C0013131F /* MainViewController.xib in Resources */, 280 | 5964B9D51AB6DED80013131F /* LaunchScreen.xib in Resources */, 281 | D459B7C41AD5809F0008B93E /* HomeViewController.xib in Resources */, 282 | 5964B9D21AB6DED80013131F /* Images.xcassets in Resources */, 283 | D48298C71AD68C4B002E7955 /* NextViewController.xib in Resources */, 284 | ); 285 | runOnlyForDeploymentPostprocessing = 0; 286 | }; 287 | 5964B9D81AB6DED80013131F /* Resources */ = { 288 | isa = PBXResourcesBuildPhase; 289 | buildActionMask = 2147483647; 290 | files = ( 291 | ); 292 | runOnlyForDeploymentPostprocessing = 0; 293 | }; 294 | /* End PBXResourcesBuildPhase section */ 295 | 296 | /* Begin PBXSourcesBuildPhase section */ 297 | 5964B9BD1AB6DED80013131F /* Sources */ = { 298 | isa = PBXSourcesBuildPhase; 299 | buildActionMask = 2147483647; 300 | files = ( 301 | D48298BC1AD67344002E7955 /* LeftCell.m in Sources */, 302 | 5964B9CD1AB6DED80013131F /* ViewController.m in Sources */, 303 | 5964B9F91AB6DFA80013131F /* SLideZoomMenuController.m in Sources */, 304 | 5964B9EF1AB6DF4D0013131F /* LeftViewController.m in Sources */, 305 | 5964B9CA1AB6DED80013131F /* AppDelegate.m in Sources */, 306 | D48298C61AD68C4B002E7955 /* NextViewController.m in Sources */, 307 | 5964B9F41AB6DF5C0013131F /* MainViewController.m in Sources */, 308 | D459B7C31AD5809F0008B93E /* HomeViewController.m in Sources */, 309 | 5964B9C71AB6DED80013131F /* main.m in Sources */, 310 | D48298C11AD67867002E7955 /* MainCell.m in Sources */, 311 | ); 312 | runOnlyForDeploymentPostprocessing = 0; 313 | }; 314 | 5964B9D61AB6DED80013131F /* Sources */ = { 315 | isa = PBXSourcesBuildPhase; 316 | buildActionMask = 2147483647; 317 | files = ( 318 | 5964B9E11AB6DED80013131F /* SlideZoomMenuDemoTests.m in Sources */, 319 | ); 320 | runOnlyForDeploymentPostprocessing = 0; 321 | }; 322 | /* End PBXSourcesBuildPhase section */ 323 | 324 | /* Begin PBXTargetDependency section */ 325 | 5964B9DC1AB6DED80013131F /* PBXTargetDependency */ = { 326 | isa = PBXTargetDependency; 327 | target = 5964B9C01AB6DED80013131F /* SlideZoomMenuDemo */; 328 | targetProxy = 5964B9DB1AB6DED80013131F /* PBXContainerItemProxy */; 329 | }; 330 | /* End PBXTargetDependency section */ 331 | 332 | /* Begin PBXVariantGroup section */ 333 | 5964B9CE1AB6DED80013131F /* Main.storyboard */ = { 334 | isa = PBXVariantGroup; 335 | children = ( 336 | 5964B9CF1AB6DED80013131F /* Base */, 337 | ); 338 | name = Main.storyboard; 339 | sourceTree = ""; 340 | }; 341 | 5964B9D31AB6DED80013131F /* LaunchScreen.xib */ = { 342 | isa = PBXVariantGroup; 343 | children = ( 344 | 5964B9D41AB6DED80013131F /* Base */, 345 | ); 346 | name = LaunchScreen.xib; 347 | sourceTree = ""; 348 | }; 349 | /* End PBXVariantGroup section */ 350 | 351 | /* Begin XCBuildConfiguration section */ 352 | 5964B9E21AB6DED80013131F /* Debug */ = { 353 | isa = XCBuildConfiguration; 354 | buildSettings = { 355 | ALWAYS_SEARCH_USER_PATHS = NO; 356 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 357 | CLANG_CXX_LIBRARY = "libc++"; 358 | CLANG_ENABLE_MODULES = YES; 359 | CLANG_ENABLE_OBJC_ARC = YES; 360 | CLANG_WARN_BOOL_CONVERSION = YES; 361 | CLANG_WARN_CONSTANT_CONVERSION = YES; 362 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 363 | CLANG_WARN_EMPTY_BODY = YES; 364 | CLANG_WARN_ENUM_CONVERSION = YES; 365 | CLANG_WARN_INT_CONVERSION = YES; 366 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 367 | CLANG_WARN_UNREACHABLE_CODE = YES; 368 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 369 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 370 | COPY_PHASE_STRIP = NO; 371 | ENABLE_STRICT_OBJC_MSGSEND = YES; 372 | GCC_C_LANGUAGE_STANDARD = gnu99; 373 | GCC_DYNAMIC_NO_PIC = NO; 374 | GCC_OPTIMIZATION_LEVEL = 0; 375 | GCC_PREPROCESSOR_DEFINITIONS = ( 376 | "DEBUG=1", 377 | "$(inherited)", 378 | ); 379 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 380 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 381 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 382 | GCC_WARN_UNDECLARED_SELECTOR = YES; 383 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 384 | GCC_WARN_UNUSED_FUNCTION = YES; 385 | GCC_WARN_UNUSED_VARIABLE = YES; 386 | IPHONEOS_DEPLOYMENT_TARGET = 7.0; 387 | MTL_ENABLE_DEBUG_INFO = YES; 388 | ONLY_ACTIVE_ARCH = YES; 389 | SDKROOT = iphoneos; 390 | }; 391 | name = Debug; 392 | }; 393 | 5964B9E31AB6DED80013131F /* Release */ = { 394 | isa = XCBuildConfiguration; 395 | buildSettings = { 396 | ALWAYS_SEARCH_USER_PATHS = NO; 397 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 398 | CLANG_CXX_LIBRARY = "libc++"; 399 | CLANG_ENABLE_MODULES = YES; 400 | CLANG_ENABLE_OBJC_ARC = YES; 401 | CLANG_WARN_BOOL_CONVERSION = YES; 402 | CLANG_WARN_CONSTANT_CONVERSION = YES; 403 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 404 | CLANG_WARN_EMPTY_BODY = YES; 405 | CLANG_WARN_ENUM_CONVERSION = YES; 406 | CLANG_WARN_INT_CONVERSION = YES; 407 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 408 | CLANG_WARN_UNREACHABLE_CODE = YES; 409 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 410 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 411 | COPY_PHASE_STRIP = NO; 412 | ENABLE_NS_ASSERTIONS = NO; 413 | ENABLE_STRICT_OBJC_MSGSEND = YES; 414 | GCC_C_LANGUAGE_STANDARD = gnu99; 415 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 416 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 417 | GCC_WARN_UNDECLARED_SELECTOR = YES; 418 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 419 | GCC_WARN_UNUSED_FUNCTION = YES; 420 | GCC_WARN_UNUSED_VARIABLE = YES; 421 | IPHONEOS_DEPLOYMENT_TARGET = 7.0; 422 | MTL_ENABLE_DEBUG_INFO = NO; 423 | SDKROOT = iphoneos; 424 | VALIDATE_PRODUCT = YES; 425 | }; 426 | name = Release; 427 | }; 428 | 5964B9E51AB6DED80013131F /* Debug */ = { 429 | isa = XCBuildConfiguration; 430 | buildSettings = { 431 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 432 | INFOPLIST_FILE = SlideZoomMenuDemo/Info.plist; 433 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 434 | PRODUCT_NAME = "$(TARGET_NAME)"; 435 | }; 436 | name = Debug; 437 | }; 438 | 5964B9E61AB6DED80013131F /* Release */ = { 439 | isa = XCBuildConfiguration; 440 | buildSettings = { 441 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 442 | INFOPLIST_FILE = SlideZoomMenuDemo/Info.plist; 443 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 444 | PRODUCT_NAME = "$(TARGET_NAME)"; 445 | }; 446 | name = Release; 447 | }; 448 | 5964B9E81AB6DED80013131F /* Debug */ = { 449 | isa = XCBuildConfiguration; 450 | buildSettings = { 451 | BUNDLE_LOADER = "$(TEST_HOST)"; 452 | FRAMEWORK_SEARCH_PATHS = ( 453 | "$(SDKROOT)/Developer/Library/Frameworks", 454 | "$(inherited)", 455 | ); 456 | GCC_PREPROCESSOR_DEFINITIONS = ( 457 | "DEBUG=1", 458 | "$(inherited)", 459 | ); 460 | INFOPLIST_FILE = SlideZoomMenuDemoTests/Info.plist; 461 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 462 | PRODUCT_NAME = "$(TARGET_NAME)"; 463 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SlideZoomMenuDemo.app/SlideZoomMenuDemo"; 464 | }; 465 | name = Debug; 466 | }; 467 | 5964B9E91AB6DED80013131F /* Release */ = { 468 | isa = XCBuildConfiguration; 469 | buildSettings = { 470 | BUNDLE_LOADER = "$(TEST_HOST)"; 471 | FRAMEWORK_SEARCH_PATHS = ( 472 | "$(SDKROOT)/Developer/Library/Frameworks", 473 | "$(inherited)", 474 | ); 475 | INFOPLIST_FILE = SlideZoomMenuDemoTests/Info.plist; 476 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 477 | PRODUCT_NAME = "$(TARGET_NAME)"; 478 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SlideZoomMenuDemo.app/SlideZoomMenuDemo"; 479 | }; 480 | name = Release; 481 | }; 482 | /* End XCBuildConfiguration section */ 483 | 484 | /* Begin XCConfigurationList section */ 485 | 5964B9BC1AB6DED80013131F /* Build configuration list for PBXProject "SlideZoomMenuDemo" */ = { 486 | isa = XCConfigurationList; 487 | buildConfigurations = ( 488 | 5964B9E21AB6DED80013131F /* Debug */, 489 | 5964B9E31AB6DED80013131F /* Release */, 490 | ); 491 | defaultConfigurationIsVisible = 0; 492 | defaultConfigurationName = Release; 493 | }; 494 | 5964B9E41AB6DED80013131F /* Build configuration list for PBXNativeTarget "SlideZoomMenuDemo" */ = { 495 | isa = XCConfigurationList; 496 | buildConfigurations = ( 497 | 5964B9E51AB6DED80013131F /* Debug */, 498 | 5964B9E61AB6DED80013131F /* Release */, 499 | ); 500 | defaultConfigurationIsVisible = 0; 501 | defaultConfigurationName = Release; 502 | }; 503 | 5964B9E71AB6DED80013131F /* Build configuration list for PBXNativeTarget "SlideZoomMenuDemoTests" */ = { 504 | isa = XCConfigurationList; 505 | buildConfigurations = ( 506 | 5964B9E81AB6DED80013131F /* Debug */, 507 | 5964B9E91AB6DED80013131F /* Release */, 508 | ); 509 | defaultConfigurationIsVisible = 0; 510 | defaultConfigurationName = Release; 511 | }; 512 | /* End XCConfigurationList section */ 513 | }; 514 | rootObject = 5964B9B91AB6DED80013131F /* Project object */; 515 | } 516 | --------------------------------------------------------------------------------