├── Screenshot
├── flaw.png
├── Official.png
├── llrisedemo.gif
└── LLRiseTabBar-iOS.png
├── LLRiseTabBarDemo
├── LLRiseTabBarDemo
│ ├── Assets.xcassets
│ │ ├── Contents.json
│ │ ├── NavBar
│ │ │ ├── Contents.json
│ │ │ ├── icon_search.imageset
│ │ │ │ ├── icon_search@2x.png
│ │ │ │ ├── icon_search@3x.png
│ │ │ │ └── Contents.json
│ │ │ ├── home_bar_scan.imageset
│ │ │ │ ├── home_bar_scan@2x.png
│ │ │ │ ├── home_bar_scan@3x.png
│ │ │ │ └── Contents.json
│ │ │ └── home_title_slogan.imageset
│ │ │ │ ├── home_title_slogan@2x.png
│ │ │ │ ├── home_title_slogan@3x.png
│ │ │ │ └── Contents.json
│ │ ├── TabBarIcon
│ │ │ ├── Contents.json
│ │ │ ├── home_normal.imageset
│ │ │ │ ├── home_normal@2x.png
│ │ │ │ └── Contents.json
│ │ │ ├── post_normal.imageset
│ │ │ │ ├── post_normal@2x.png
│ │ │ │ └── Contents.json
│ │ │ ├── mycity_normal.imageset
│ │ │ │ ├── mycity_normal@2x.png
│ │ │ │ └── Contents.json
│ │ │ ├── account_normal.imageset
│ │ │ │ ├── account_normal@2x.png
│ │ │ │ └── Contents.json
│ │ │ ├── home_highlight.imageset
│ │ │ │ ├── home_highlight@2x.png
│ │ │ │ └── Contents.json
│ │ │ ├── message_normal.imageset
│ │ │ │ ├── message_normal@2x.png
│ │ │ │ └── Contents.json
│ │ │ ├── tapbar_top_line.imageset
│ │ │ │ ├── tapbar_top_line@2x.png
│ │ │ │ └── Contents.json
│ │ │ ├── mycity_highlight.imageset
│ │ │ │ ├── mycity_highlight@2x.png
│ │ │ │ └── Contents.json
│ │ │ ├── account_highlight.imageset
│ │ │ │ ├── account_highlight@2x.png
│ │ │ │ └── Contents.json
│ │ │ └── message_highlight.imageset
│ │ │ │ ├── message_highlight@2x.png
│ │ │ │ └── Contents.json
│ │ ├── AppIcon.appiconset
│ │ │ ├── AppIcon29x29@2x.png
│ │ │ ├── AppIcon29x29@3x.png
│ │ │ ├── AppIcon40x40@2x.png
│ │ │ ├── AppIcon40x40@3x.png
│ │ │ ├── AppIcon60x60@2x.png
│ │ │ ├── AppIcon60x60@3x.png
│ │ │ └── Contents.json
│ │ └── BrandAsset.launchimage
│ │ │ ├── LaunchImage@2x.png
│ │ │ ├── LaunchImage-568h@2x.png
│ │ │ ├── LaunchImage-800-667h@2x.png
│ │ │ ├── LaunchImage-800-Portrait-736h@3x.png
│ │ │ └── Contents.json
│ ├── ViewController
│ │ ├── Base
│ │ │ ├── LLBaseViewController.h
│ │ │ └── LLBaseViewController.m
│ │ ├── Home
│ │ │ ├── LLHomeViewController.h
│ │ │ ├── LLHomeViewController.m
│ │ │ └── LLHomeViewController.xib
│ │ ├── Mine
│ │ │ ├── LLMineViewController.h
│ │ │ ├── LLMineViewController.m
│ │ │ └── LLMineViewController.xib
│ │ ├── Message
│ │ │ ├── LLMessageViewController.h
│ │ │ ├── LLMessageViewController.m
│ │ │ └── LLMessageViewController.xib
│ │ └── SameCity
│ │ │ ├── LLSameCityViewController.h
│ │ │ ├── LLSameCityViewController.m
│ │ │ └── LLSameCityViewController.xib
│ ├── AppDelegate.h
│ ├── main.m
│ ├── CustomView
│ │ └── LLTabBar
│ │ │ ├── LLTabBar.h
│ │ │ ├── LLTabBarItem.h
│ │ │ ├── LLTabBarItem.m
│ │ │ └── LLTabBar.m
│ ├── LLRiseTabBarDemo.pch
│ ├── Info.plist
│ └── AppDelegate.m
└── LLRiseTabBarDemo.xcodeproj
│ ├── project.xcworkspace
│ └── contents.xcworkspacedata
│ └── project.pbxproj
├── .gitignore
├── LICENSE
└── README.md
/Screenshot/flaw.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoCodeNoWife/LLRiseTabBar-iOS/HEAD/Screenshot/flaw.png
--------------------------------------------------------------------------------
/Screenshot/Official.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoCodeNoWife/LLRiseTabBar-iOS/HEAD/Screenshot/Official.png
--------------------------------------------------------------------------------
/Screenshot/llrisedemo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoCodeNoWife/LLRiseTabBar-iOS/HEAD/Screenshot/llrisedemo.gif
--------------------------------------------------------------------------------
/Screenshot/LLRiseTabBar-iOS.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoCodeNoWife/LLRiseTabBar-iOS/HEAD/Screenshot/LLRiseTabBar-iOS.png
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/NavBar/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/TabBarIcon/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoCodeNoWife/LLRiseTabBar-iOS/HEAD/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@2x.png
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoCodeNoWife/LLRiseTabBar-iOS/HEAD/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@3x.png
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoCodeNoWife/LLRiseTabBar-iOS/HEAD/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@2x.png
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoCodeNoWife/LLRiseTabBar-iOS/HEAD/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@3x.png
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoCodeNoWife/LLRiseTabBar-iOS/HEAD/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@2x.png
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoCodeNoWife/LLRiseTabBar-iOS/HEAD/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@3x.png
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/BrandAsset.launchimage/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoCodeNoWife/LLRiseTabBar-iOS/HEAD/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/BrandAsset.launchimage/LaunchImage@2x.png
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/BrandAsset.launchimage/LaunchImage-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoCodeNoWife/LLRiseTabBar-iOS/HEAD/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/BrandAsset.launchimage/LaunchImage-568h@2x.png
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/NavBar/icon_search.imageset/icon_search@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoCodeNoWife/LLRiseTabBar-iOS/HEAD/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/NavBar/icon_search.imageset/icon_search@2x.png
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/NavBar/icon_search.imageset/icon_search@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoCodeNoWife/LLRiseTabBar-iOS/HEAD/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/NavBar/icon_search.imageset/icon_search@3x.png
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/BrandAsset.launchimage/LaunchImage-800-667h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoCodeNoWife/LLRiseTabBar-iOS/HEAD/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/BrandAsset.launchimage/LaunchImage-800-667h@2x.png
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/NavBar/home_bar_scan.imageset/home_bar_scan@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoCodeNoWife/LLRiseTabBar-iOS/HEAD/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/NavBar/home_bar_scan.imageset/home_bar_scan@2x.png
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/NavBar/home_bar_scan.imageset/home_bar_scan@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoCodeNoWife/LLRiseTabBar-iOS/HEAD/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/NavBar/home_bar_scan.imageset/home_bar_scan@3x.png
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/TabBarIcon/home_normal.imageset/home_normal@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoCodeNoWife/LLRiseTabBar-iOS/HEAD/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/TabBarIcon/home_normal.imageset/home_normal@2x.png
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/TabBarIcon/post_normal.imageset/post_normal@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoCodeNoWife/LLRiseTabBar-iOS/HEAD/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/TabBarIcon/post_normal.imageset/post_normal@2x.png
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/TabBarIcon/mycity_normal.imageset/mycity_normal@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoCodeNoWife/LLRiseTabBar-iOS/HEAD/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/TabBarIcon/mycity_normal.imageset/mycity_normal@2x.png
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/TabBarIcon/account_normal.imageset/account_normal@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoCodeNoWife/LLRiseTabBar-iOS/HEAD/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/TabBarIcon/account_normal.imageset/account_normal@2x.png
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/TabBarIcon/home_highlight.imageset/home_highlight@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoCodeNoWife/LLRiseTabBar-iOS/HEAD/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/TabBarIcon/home_highlight.imageset/home_highlight@2x.png
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/TabBarIcon/message_normal.imageset/message_normal@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoCodeNoWife/LLRiseTabBar-iOS/HEAD/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/TabBarIcon/message_normal.imageset/message_normal@2x.png
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/BrandAsset.launchimage/LaunchImage-800-Portrait-736h@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoCodeNoWife/LLRiseTabBar-iOS/HEAD/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/BrandAsset.launchimage/LaunchImage-800-Portrait-736h@3x.png
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/NavBar/home_title_slogan.imageset/home_title_slogan@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoCodeNoWife/LLRiseTabBar-iOS/HEAD/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/NavBar/home_title_slogan.imageset/home_title_slogan@2x.png
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/NavBar/home_title_slogan.imageset/home_title_slogan@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoCodeNoWife/LLRiseTabBar-iOS/HEAD/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/NavBar/home_title_slogan.imageset/home_title_slogan@3x.png
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/TabBarIcon/tapbar_top_line.imageset/tapbar_top_line@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoCodeNoWife/LLRiseTabBar-iOS/HEAD/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/TabBarIcon/tapbar_top_line.imageset/tapbar_top_line@2x.png
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/TabBarIcon/mycity_highlight.imageset/mycity_highlight@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoCodeNoWife/LLRiseTabBar-iOS/HEAD/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/TabBarIcon/mycity_highlight.imageset/mycity_highlight@2x.png
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/TabBarIcon/account_highlight.imageset/account_highlight@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoCodeNoWife/LLRiseTabBar-iOS/HEAD/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/TabBarIcon/account_highlight.imageset/account_highlight@2x.png
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/TabBarIcon/message_highlight.imageset/message_highlight@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoCodeNoWife/LLRiseTabBar-iOS/HEAD/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/TabBarIcon/message_highlight.imageset/message_highlight@2x.png
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/ViewController/Base/LLBaseViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // LLBaseViewController.h
3 | // LLRiseTabBarDemo
4 | //
5 | // Created by Meilbn on 10/18/15.
6 | // Copyright © 2015 meilbn. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface LLBaseViewController : UIViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/ViewController/Home/LLHomeViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // LLHomeViewController.h
3 | // LLRiseTabBarDemo
4 | //
5 | // Created by Meilbn on 10/18/15.
6 | // Copyright © 2015 meilbn. All rights reserved.
7 | //
8 |
9 | #import "LLBaseViewController.h"
10 |
11 | @interface LLHomeViewController : LLBaseViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/ViewController/Mine/LLMineViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // LLMineViewController.h
3 | // LLRiseTabBarDemo
4 | //
5 | // Created by Meilbn on 10/18/15.
6 | // Copyright © 2015 meilbn. All rights reserved.
7 | //
8 |
9 | #import "LLBaseViewController.h"
10 |
11 | @interface LLMineViewController : LLBaseViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/ViewController/Message/LLMessageViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // LLMessageViewController.h
3 | // LLRiseTabBarDemo
4 | //
5 | // Created by Meilbn on 10/18/15.
6 | // Copyright © 2015 meilbn. All rights reserved.
7 | //
8 |
9 | #import "LLBaseViewController.h"
10 |
11 | @interface LLMessageViewController : LLBaseViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/ViewController/SameCity/LLSameCityViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // LLSameCityViewController.h
3 | // LLRiseTabBarDemo
4 | //
5 | // Created by Meilbn on 10/18/15.
6 | // Copyright © 2015 meilbn. All rights reserved.
7 | //
8 |
9 | #import "LLBaseViewController.h"
10 |
11 | @interface LLSameCityViewController : LLBaseViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // LLRiseTabBarDemo
4 | //
5 | // Created by Meilbn on 10/18/15.
6 | // Copyright © 2015 meilbn. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // LLRiseTabBarDemo
4 | //
5 | // Created by Meilbn on 10/18/15.
6 | // Copyright © 2015 meilbn. 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 |
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/TabBarIcon/home_normal.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "home_normal@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/TabBarIcon/post_normal.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "post_normal@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/TabBarIcon/account_normal.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "account_normal@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/TabBarIcon/home_highlight.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "home_highlight@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/TabBarIcon/message_normal.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "message_normal@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/TabBarIcon/mycity_normal.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "mycity_normal@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/TabBarIcon/mycity_highlight.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "mycity_highlight@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/TabBarIcon/tapbar_top_line.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "tapbar_top_line@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/TabBarIcon/account_highlight.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "account_highlight@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/TabBarIcon/message_highlight.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "message_highlight@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/NavBar/icon_search.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "icon_search@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x",
15 | "filename" : "icon_search@3x.png"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/NavBar/home_bar_scan.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "home_bar_scan@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x",
15 | "filename" : "home_bar_scan@3x.png"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/NavBar/home_title_slogan.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "home_title_slogan@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x",
15 | "filename" : "home_title_slogan@3x.png"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/CustomView/LLTabBar/LLTabBar.h:
--------------------------------------------------------------------------------
1 | //
2 | // LLTabBar.h
3 | // LLRiseTabBarDemo
4 | //
5 | // Created by Meilbn on 10/18/15.
6 | // Copyright © 2015 meilbn. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "LLTabBarItem.h"
11 |
12 | @protocol LLTabBarDelegate
13 |
14 | - (void)tabBarDidSelectedRiseButton;
15 |
16 | @end
17 |
18 | @interface LLTabBar : UIView
19 |
20 | @property (nonatomic, copy) NSArray *tabBarItemAttributes;
21 | @property (nonatomic, weak) id delegate;
22 |
23 | @end
24 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # MacOSX
2 | .DS_Store
3 |
4 | # Xcode
5 | #
6 | build/
7 | *.pbxuser
8 | !default.pbxuser
9 | *.mode1v3
10 | !default.mode1v3
11 | *.mode2v3
12 | !default.mode2v3
13 | *.perspectivev3
14 | !default.perspectivev3
15 | xcuserdata
16 | *.xccheckout
17 | *.moved-aside
18 | DerivedData
19 | *.hmap
20 | *.ipa
21 | *.xcuserstate
22 |
23 | # CocoaPods
24 | #
25 | # We recommend against adding the Pods directory to your .gitignore. However
26 | # you should judge for yourself, the pros and cons are mentioned at:
27 | # http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control
28 | #
29 | #Pods/
30 |
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/LLRiseTabBarDemo.pch:
--------------------------------------------------------------------------------
1 | //
2 | // LLRiseTabBarDemo.pch
3 | // LLRiseTabBarDemo
4 | //
5 | // Created by Meilbn on 10/18/15.
6 | // Copyright © 2015 meilbn. All rights reserved.
7 | //
8 |
9 | #ifndef LLRiseTabBarDemo_pch
10 | #define LLRiseTabBarDemo_pch
11 |
12 | // Include any system framework and library headers here that should be included in all compilation units.
13 | // You will also need to set the Prefix Header build setting of one or more of your targets to reference this file.
14 |
15 | // 屏幕高度
16 | #define SCREEN_HEIGHT [[UIScreen mainScreen] bounds].size.height
17 | // 屏幕宽度
18 | #define SCREEN_WIDTH [[UIScreen mainScreen] bounds].size.width
19 |
20 |
21 |
22 | #endif /* LLRiseTabBarDemo_pch */
23 |
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/CustomView/LLTabBar/LLTabBarItem.h:
--------------------------------------------------------------------------------
1 | //
2 | // LLTabBarItem.h
3 | // LLRiseTabBarDemo
4 | //
5 | // Created by Meilbn on 10/18/15.
6 | // Copyright © 2015 meilbn. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | typedef NS_ENUM(NSUInteger, LLTabBarItemType) {
12 | LLTabBarItemNormal = 0,
13 | LLTabBarItemRise,
14 | };
15 |
16 | extern NSString *const kLLTabBarItemAttributeTitle;// NSString
17 | extern NSString *const kLLTabBarItemAttributeNormalImageName;// NSString
18 | extern NSString *const kLLTabBarItemAttributeSelectedImageName;// NSString
19 | extern NSString *const kLLTabBarItemAttributeType;// NSNumber, LLTabBarItemType
20 |
21 | @interface LLTabBarItem : UIButton
22 |
23 | @property (nonatomic, assign) LLTabBarItemType tabBarItemType;
24 |
25 | @end
26 |
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/ViewController/Mine/LLMineViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // LLMineViewController.m
3 | // LLRiseTabBarDemo
4 | //
5 | // Created by Meilbn on 10/18/15.
6 | // Copyright © 2015 meilbn. All rights reserved.
7 | //
8 |
9 | #import "LLMineViewController.h"
10 |
11 | @interface LLMineViewController ()
12 |
13 | @end
14 |
15 | @implementation LLMineViewController
16 |
17 | - (void)viewDidLoad {
18 | [super viewDidLoad];
19 | // Do any additional setup after loading the view from its nib.
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 |
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "size" : "29x29",
5 | "idiom" : "iphone",
6 | "filename" : "AppIcon29x29@2x.png",
7 | "scale" : "2x"
8 | },
9 | {
10 | "size" : "29x29",
11 | "idiom" : "iphone",
12 | "filename" : "AppIcon29x29@3x.png",
13 | "scale" : "3x"
14 | },
15 | {
16 | "size" : "40x40",
17 | "idiom" : "iphone",
18 | "filename" : "AppIcon40x40@2x.png",
19 | "scale" : "2x"
20 | },
21 | {
22 | "size" : "40x40",
23 | "idiom" : "iphone",
24 | "filename" : "AppIcon40x40@3x.png",
25 | "scale" : "3x"
26 | },
27 | {
28 | "size" : "60x60",
29 | "idiom" : "iphone",
30 | "filename" : "AppIcon60x60@2x.png",
31 | "scale" : "2x"
32 | },
33 | {
34 | "size" : "60x60",
35 | "idiom" : "iphone",
36 | "filename" : "AppIcon60x60@3x.png",
37 | "scale" : "3x"
38 | }
39 | ],
40 | "info" : {
41 | "version" : 1,
42 | "author" : "xcode"
43 | }
44 | }
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/ViewController/Message/LLMessageViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // LLMessageViewController.m
3 | // LLRiseTabBarDemo
4 | //
5 | // Created by Meilbn on 10/18/15.
6 | // Copyright © 2015 meilbn. All rights reserved.
7 | //
8 |
9 | #import "LLMessageViewController.h"
10 |
11 | @interface LLMessageViewController ()
12 |
13 | @end
14 |
15 | @implementation LLMessageViewController
16 |
17 | - (void)viewDidLoad {
18 | [super viewDidLoad];
19 | // Do any additional setup after loading the view from its nib.
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 |
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/ViewController/SameCity/LLSameCityViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // LLSameCityViewController.m
3 | // LLRiseTabBarDemo
4 | //
5 | // Created by Meilbn on 10/18/15.
6 | // Copyright © 2015 meilbn. All rights reserved.
7 | //
8 |
9 | #import "LLSameCityViewController.h"
10 |
11 | @interface LLSameCityViewController ()
12 |
13 | @end
14 |
15 | @implementation LLSameCityViewController
16 |
17 | - (void)viewDidLoad {
18 | [super viewDidLoad];
19 | // Do any additional setup after loading the view from its nib.
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 |
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/ViewController/Home/LLHomeViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // LLHomeViewController.m
3 | // LLRiseTabBarDemo
4 | //
5 | // Created by Meilbn on 10/18/15.
6 | // Copyright © 2015 meilbn. All rights reserved.
7 | //
8 |
9 | #import "LLHomeViewController.h"
10 | #import "LLTabBarItem.h"
11 | #import "LLTabBar.h"
12 |
13 | @interface LLHomeViewController ()
14 |
15 | @end
16 |
17 | @implementation LLHomeViewController
18 |
19 | - (void)viewDidLoad {
20 | [super viewDidLoad];
21 | // Do any additional setup after loading the view from its nib.
22 | }
23 |
24 | - (void)didReceiveMemoryWarning {
25 | [super didReceiveMemoryWarning];
26 | // Dispose of any resources that can be recreated.
27 | }
28 |
29 | /*
30 | #pragma mark - Navigation
31 |
32 | // In a storyboard-based application, you will often want to do a little preparation before navigation
33 | - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
34 | // Get the new view controller using [segue destinationViewController].
35 | // Pass the selected object to the new view controller.
36 | }
37 | */
38 |
39 | @end
40 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2015
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
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 | UIRequiredDeviceCapabilities
26 |
27 | armv7
28 |
29 | UISupportedInterfaceOrientations
30 |
31 | UIInterfaceOrientationPortrait
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/ViewController/Base/LLBaseViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // LLBaseViewController.m
3 | // LLRiseTabBarDemo
4 | //
5 | // Created by Meilbn on 10/18/15.
6 | // Copyright © 2015 meilbn. All rights reserved.
7 | //
8 |
9 | #import "LLBaseViewController.h"
10 |
11 | @interface LLBaseViewController ()
12 |
13 | @end
14 |
15 | @implementation LLBaseViewController
16 |
17 | #pragma mark - Lifecycle
18 |
19 | - (instancetype)init {
20 | self = [super init];
21 |
22 | if (self) {
23 |
24 | }
25 |
26 | return self;
27 | }
28 |
29 | - (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
30 | self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
31 |
32 | if (self) {
33 |
34 | }
35 |
36 | return self;
37 | }
38 |
39 | #pragma mark - View Lifecycle
40 |
41 | - (void)viewDidLoad {
42 | [super viewDidLoad];
43 | // Do any additional setup after loading the view.
44 | self.navigationController.navigationBarHidden = YES;
45 | }
46 |
47 | - (void)didReceiveMemoryWarning {
48 | [super didReceiveMemoryWarning];
49 | // Dispose of any resources that can be recreated.
50 | }
51 |
52 | @end
53 |
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/Assets.xcassets/BrandAsset.launchimage/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "extent" : "full-screen",
5 | "idiom" : "iphone",
6 | "subtype" : "736h",
7 | "filename" : "LaunchImage-800-Portrait-736h@3x.png",
8 | "minimum-system-version" : "8.0",
9 | "orientation" : "portrait",
10 | "scale" : "3x"
11 | },
12 | {
13 | "extent" : "full-screen",
14 | "idiom" : "iphone",
15 | "subtype" : "667h",
16 | "filename" : "LaunchImage-800-667h@2x.png",
17 | "minimum-system-version" : "8.0",
18 | "orientation" : "portrait",
19 | "scale" : "2x"
20 | },
21 | {
22 | "orientation" : "portrait",
23 | "idiom" : "iphone",
24 | "filename" : "LaunchImage@2x.png",
25 | "extent" : "full-screen",
26 | "minimum-system-version" : "7.0",
27 | "scale" : "2x"
28 | },
29 | {
30 | "extent" : "full-screen",
31 | "idiom" : "iphone",
32 | "subtype" : "retina4",
33 | "filename" : "LaunchImage-568h@2x.png",
34 | "minimum-system-version" : "7.0",
35 | "orientation" : "portrait",
36 | "scale" : "2x"
37 | }
38 | ],
39 | "info" : {
40 | "version" : 1,
41 | "author" : "xcode"
42 | }
43 | }
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/CustomView/LLTabBar/LLTabBarItem.m:
--------------------------------------------------------------------------------
1 | //
2 | // LLTabBarItem.m
3 | // LLRiseTabBarDemo
4 | //
5 | // Created by Meilbn on 10/18/15.
6 | // Copyright © 2015 meilbn. All rights reserved.
7 | //
8 |
9 | #import "LLTabBarItem.h"
10 |
11 | NSString *const kLLTabBarItemAttributeTitle = @"LLTabBarItemAttributeTitle";
12 | NSString *const kLLTabBarItemAttributeNormalImageName = @"LLTabBarItemAttributeNormalImageName";
13 | NSString *const kLLTabBarItemAttributeSelectedImageName = @"LLTabBarItemAttributeSelectedImageName";
14 | NSString *const kLLTabBarItemAttributeType = @"LLTabBarItemAttributeType";
15 |
16 | @implementation LLTabBarItem
17 |
18 | - (instancetype)initWithFrame:(CGRect)frame {
19 | self = [super initWithFrame:frame];
20 |
21 | if (self) {
22 | [self config];
23 | }
24 |
25 | return self;
26 | }
27 |
28 | - (instancetype)init {
29 | self = [super init];
30 |
31 | if (self) {
32 | [self config];
33 | }
34 |
35 | return self;
36 | }
37 |
38 | - (instancetype)initWithCoder:(NSCoder *)aDecoder {
39 | self = [super initWithCoder:aDecoder];
40 |
41 | if (self) {
42 | [self config];
43 | }
44 |
45 | return self;
46 | }
47 |
48 | - (void)config {
49 | self.adjustsImageWhenHighlighted = NO;
50 | self.imageView.contentMode = UIViewContentModeScaleAspectFit;
51 | }
52 |
53 | - (void)layoutSubviews {
54 | [super layoutSubviews];
55 |
56 | [self.titleLabel sizeToFit];
57 | CGSize titleSize = self.titleLabel.frame.size;
58 |
59 | CGSize imageSize = [self imageForState:UIControlStateNormal].size;
60 | if (imageSize.width != 0 && imageSize.height != 0) {
61 | CGFloat imageViewCenterY = CGRectGetHeight(self.frame) - 3 - titleSize.height - imageSize.height / 2 - 5;
62 | self.imageView.center = CGPointMake(CGRectGetWidth(self.frame) / 2, imageViewCenterY);
63 | } else {
64 | CGPoint imageViewCenter = self.imageView.center;
65 | imageViewCenter.x = CGRectGetWidth(self.frame) / 2;
66 | imageViewCenter.y = (CGRectGetHeight(self.frame) - titleSize.height) / 2;
67 | self.imageView.center = imageViewCenter;
68 | }
69 |
70 | CGPoint labelCenter = CGPointMake(CGRectGetWidth(self.frame) / 2, CGRectGetHeight(self.frame) - 3 - titleSize.height / 2);
71 | self.titleLabel.center = labelCenter;
72 |
73 | // 还有一种实现方式是设置 Edge Insets,Xcode 7.0.1 好像有点不开心,在 IB 里面更改一下属性的时候,经常崩溃。。。
74 | /* 位置还有一点不准确,推荐用上面的代码来设置
75 |
76 | [self.titleLabel sizeToFit];
77 | CGSize titleSize = self.titleLabel.frame.size;
78 | CGSize imageSize = [self imageForState:UIControlStateNormal].size;
79 | NSInteger titleTopInset = CGRectGetHeight(self.frame) - 3 - titleSize.height;
80 | CGFloat titleRightInset = (CGRectGetWidth(self.frame) - titleSize.width) / 2 + titleSize.width;
81 | [self setTitleEdgeInsets:UIEdgeInsetsMake(titleTopInset, 0, 3, titleRightInset)];
82 | CGFloat imageViewLeftRightInset = (CGRectGetWidth(self.frame) - imageSize.width) / 2;
83 | [self setImageEdgeInsets:UIEdgeInsetsMake(CGRectGetHeight(self.frame) - 3 - 5 - titleSize.height - imageSize.height, imageViewLeftRightInset, 3 + 5 + titleSize.height, imageViewLeftRightInset)];
84 |
85 | */
86 | }
87 |
88 | @end
89 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # LLRiseTabBar-iOS
2 | 仿淘宝闲鱼的TabBar (Objective-C 实现)
3 |
4 | ## 0x00 为什么做这个
5 | 从我由 Android 转 iOS 开发之后,曾接过一个项目,底部的 TabBar 就是设计成中间一个按钮凸起的样子的,平时玩的 App 不多,这样的设计也就在 Instagram 上看到过,但是那时候上网找资源也没找到比较好的 (也有可能是我没找到),所以那时候就没有做得很好,到后来,突然看到了一些 App 更新之后变成了中间一个按钮凸起的样子,想起了之前想要仿着咸鱼的 TabBar,但是一直没有动手去做,所以现在就动手开始做了。
6 |
7 | ### Android 版
8 | Android 版在 [这里](https://github.com/NoCodeNoWife/LLRiseTabBar-Android)
9 |
10 | ## 0x01 进度
11 | - 2015-10-19 中午:~~花了一个晚上的时间,没做完,有一个问题是,在自定义的按钮上,没有显示设置好的 image,在系统的 UIButton 上就可以显示。~~ (TMD Google 了好久没解决,原来是我自己忘了在自定义按钮的 ``layoutSubviews`` 方法里面调用父类的 ``layoutSubviews `` 方法 = =||)
12 | - 2015-10-19 下午:~~中间发布按钮图片显示样式未调整好~~
13 | - 2015-10-19 晚上:完成
14 |
15 | ## 0x02 截图
16 | ### 官方 App 截图:
17 | 
18 |
19 | ### 项目截图:
20 | - PNG:
21 |
22 | 
23 |
24 | - GIF:
25 |
26 | 
27 |
28 | ## 0x03 瑕疵
29 | - ~~当点击同城的时候,按钮会有变暗的效果,经过测试,发现是跟图片有关系~~ ([@devtofu](https://github.com/devtofu) 给出了 [解决办法](https://github.com/NoCodeNoWife/LLRiseTabBar-iOS/issues/1)):
30 |
31 | /* -------------------- 2016-10-11 更新 -------------------- */
32 |
33 | 其实不用覆写 ``setHighlighted:`` 方法,只要设置 UIButton 的 ``adjustsImageWhenHighlighted`` 为 ``NO`` 就可以了。
34 |
35 | 
36 |
37 | - 因为 LLTabBarItem 是继承自 UIButton 的,在设置了 ViewController 的 tabBarItem 之后,在系统的 UITabBar 中生成的实际上是 UITabBarButton(通过 Reveal 看到的),而 UITabBarButton 是继承自 UIControl 的,所以和继承 UIButton 的效果有所差别,并没有和系统的 UITabBar 效果一样。感兴趣的可以继承 UIControl 试试看。
38 |
39 | ## Usage
40 | ``` Objective-C
41 | UITabBarController *tabBarController = [[UITabBarController alloc] init];
42 | tabBarController.viewControllers = @[...];
43 |
44 | LLTabBar *tabBar = [[LLTabBar alloc] initWithFrame:tabBarController.tabBar.bounds];
45 | tabBar.tabBarItemAttributes = @[@{kLLTabBarItemAttributeTitle : @"首页", kLLTabBarItemAttributeNormalImageName : @"home_normal", kLLTabBarItemAttributeSelectedImageName : @"home_highlight", kLLTabBarItemAttributeType : @(LLTabBarItemNormal)},
46 | @{kLLTabBarItemAttributeTitle : @"同城", kLLTabBarItemAttributeNormalImageName : @"mycity_normal", kLLTabBarItemAttributeSelectedImageName : @"mycity_highlight", kLLTabBarItemAttributeType : @(LLTabBarItemNormal)},
47 | @{kLLTabBarItemAttributeTitle : @"发布", kLLTabBarItemAttributeNormalImageName : @"post_normal", kLLTabBarItemAttributeSelectedImageName : @"post_normal", kLLTabBarItemAttributeType : @(LLTabBarItemRise)},
48 | @{kLLTabBarItemAttributeTitle : @"消息", kLLTabBarItemAttributeNormalImageName : @"message_normal", kLLTabBarItemAttributeSelectedImageName : @"message_highlight", kLLTabBarItemAttributeType : @(LLTabBarItemNormal)},
49 | @{kLLTabBarItemAttributeTitle : @"我的", kLLTabBarItemAttributeNormalImageName : @"account_normal", kLLTabBarItemAttributeSelectedImageName : @"account_highlight", kLLTabBarItemAttributeType : @(LLTabBarItemNormal)}];
50 | tabBar.delegate = self;
51 | [tabBarController.tabBar addSubview:tabBar];
52 | ```
53 |
54 | ## 0x04 Requirements
55 | - iOS 7.0+
56 |
57 | ## 0x05 编译测试环境
58 | - Xcode 7.0.1 (7A1001)
59 | - iPhone6 (9.0) 模拟器
60 | - iPhone5S (8.3) 真机
61 |
62 | ## License
63 | LLRiseTabBar-iOS is available under the MIT license. See the LICENSE file for more info.
64 |
65 |
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/CustomView/LLTabBar/LLTabBar.m:
--------------------------------------------------------------------------------
1 | //
2 | // LLTabBar.m
3 | // LLRiseTabBarDemo
4 | //
5 | // Created by Meilbn on 10/18/15.
6 | // Copyright © 2015 meilbn. All rights reserved.
7 | //
8 |
9 | #import "LLTabBar.h"
10 |
11 | @interface LLTabBar ()
12 |
13 | @property (strong, nonatomic) NSMutableArray *tabBarItems;
14 |
15 | @end
16 |
17 | @implementation LLTabBar
18 |
19 | #pragma mark - Lifecycle
20 |
21 | - (instancetype)initWithFrame:(CGRect)frame {
22 | self = [super initWithFrame:frame];
23 |
24 | if (self) {
25 | [self config];
26 | }
27 |
28 | return self;
29 | }
30 |
31 | #pragma mark - Private Method
32 |
33 | - (void)config {
34 | self.backgroundColor = [UIColor whiteColor];
35 | UIImageView *topLine = [[UIImageView alloc] initWithFrame:CGRectMake(0, -5, SCREEN_WIDTH, 5)];
36 | topLine.image = [UIImage imageNamed:@"tapbar_top_line"];
37 | [self addSubview:topLine];
38 | }
39 |
40 | - (void)setSelectedIndex:(NSInteger)index {
41 | for (LLTabBarItem *item in self.tabBarItems) {
42 | if (item.tag == index) {
43 | item.selected = YES;
44 | } else {
45 | item.selected = NO;
46 | }
47 | }
48 |
49 | UIWindow *keyWindow = [[[UIApplication sharedApplication] delegate] window];
50 | UITabBarController *tabBarController = (UITabBarController *)keyWindow.rootViewController;
51 | if (tabBarController) {
52 | tabBarController.selectedIndex = index;
53 | }
54 | }
55 |
56 | #pragma mark - Touch Event
57 |
58 | - (void)itemSelected:(LLTabBarItem *)sender {
59 | if (sender.tabBarItemType != LLTabBarItemRise) {
60 | [self setSelectedIndex:sender.tag];
61 | } else {
62 | if (self.delegate) {
63 | if ([self.delegate respondsToSelector:@selector(tabBarDidSelectedRiseButton)]) {
64 | [self.delegate tabBarDidSelectedRiseButton];
65 | }
66 | }
67 | }
68 | }
69 |
70 | #pragma mark - Setter
71 |
72 | - (void)setTabBarItemAttributes:(NSArray *)tabBarItemAttributes {
73 | _tabBarItemAttributes = tabBarItemAttributes.copy;
74 |
75 | CGFloat itemWidth = SCREEN_WIDTH / _tabBarItemAttributes.count;
76 | CGFloat tabBarHeight = CGRectGetHeight(self.frame);
77 | NSInteger itemTag = 0;
78 | BOOL passedRiseItem = NO;
79 |
80 | _tabBarItems = [NSMutableArray arrayWithCapacity:_tabBarItemAttributes.count];
81 | for (id item in _tabBarItemAttributes) {
82 | if ([item isKindOfClass:[NSDictionary class]]) {
83 | NSDictionary *itemDict = (NSDictionary *)item;
84 |
85 | LLTabBarItemType type = [itemDict[kLLTabBarItemAttributeType] integerValue];
86 | CGRect frame = CGRectMake(itemTag * itemWidth + (passedRiseItem ? itemWidth : 0), 0, itemWidth, tabBarHeight);
87 |
88 | LLTabBarItem *tabBarItem = [self tabBarItemWithFrame:frame
89 | title:itemDict[kLLTabBarItemAttributeTitle]
90 | normalImageName:itemDict[kLLTabBarItemAttributeNormalImageName]
91 | selectedImageName:itemDict[kLLTabBarItemAttributeSelectedImageName] tabBarItemType:type];
92 | if (itemTag == 0) {
93 | tabBarItem.selected = YES;
94 | }
95 |
96 | [tabBarItem addTarget:self action:@selector(itemSelected:) forControlEvents:UIControlEventTouchUpInside];
97 |
98 | if (tabBarItem.tabBarItemType != LLTabBarItemRise) {
99 | tabBarItem.tag = itemTag;
100 | itemTag++;
101 | } else {
102 | passedRiseItem = YES;
103 | }
104 |
105 | [_tabBarItems addObject:tabBarItem];
106 | [self addSubview:tabBarItem];
107 | }
108 | }
109 | }
110 |
111 | - (LLTabBarItem *)tabBarItemWithFrame:(CGRect)frame title:(NSString *)title normalImageName:(NSString *)normalImageName selectedImageName:(NSString *)selectedImageName tabBarItemType:(LLTabBarItemType)tabBarItemType {
112 | LLTabBarItem *item = [[LLTabBarItem alloc] initWithFrame:frame];
113 | [item setTitle:title forState:UIControlStateNormal];
114 | [item setTitle:title forState:UIControlStateSelected];
115 | item.titleLabel.font = [UIFont systemFontOfSize:8];
116 | UIImage *normalImage = [UIImage imageNamed:normalImageName];
117 | UIImage *selectedImage = [UIImage imageNamed:selectedImageName];
118 | [item setImage:normalImage forState:UIControlStateNormal];
119 | [item setImage:selectedImage forState:UIControlStateSelected];
120 | [item setTitleColor:[UIColor colorWithWhite:51 / 255.0 alpha:1] forState:UIControlStateNormal];
121 | [item setTitleColor:[UIColor colorWithWhite:51 / 255.0 alpha:1] forState:UIControlStateSelected];
122 | item.tabBarItemType = tabBarItemType;
123 |
124 | return item;
125 | }
126 |
127 | @end
128 |
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/ViewController/Message/LLMessageViewController.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/ViewController/Mine/LLMineViewController.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/ViewController/SameCity/LLSameCityViewController.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/AppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.m
3 | // LLRiseTabBarDemo
4 | //
5 | // Created by Meilbn on 10/18/15.
6 | // Copyright © 2015 meilbn. All rights reserved.
7 | //
8 |
9 | #import "AppDelegate.h"
10 | #import "LLTabBar.h"
11 | #import "LLHomeViewController.h"
12 | #import "LLSameCityViewController.h"
13 | #import "LLMessageViewController.h"
14 | #import "LLMineViewController.h"
15 |
16 | @interface AppDelegate ()
17 |
18 | @end
19 |
20 | @implementation AppDelegate
21 |
22 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
23 | // Override point for customization after application launch.
24 | self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
25 | self.window.backgroundColor = [UIColor whiteColor];
26 | [self.window makeKeyAndVisible];
27 |
28 | LLHomeViewController *homeViewController = [[LLHomeViewController alloc] init];
29 | LLSameCityViewController *sameCityViewController = [[LLSameCityViewController alloc] init];
30 | LLMessageViewController *messageViewController = [[LLMessageViewController alloc] init];
31 | LLMineViewController *mineViewController = [[LLMineViewController alloc] init];
32 |
33 | UITabBarController *tabBarController = [[UITabBarController alloc] init];
34 | tabBarController.viewControllers = @[homeViewController, sameCityViewController, messageViewController, mineViewController];
35 |
36 | [[UITabBar appearance] setBackgroundImage:[[UIImage alloc] init]];
37 | [[UITabBar appearance] setShadowImage:[[UIImage alloc] init]];
38 |
39 | LLTabBar *tabBar = [[LLTabBar alloc] initWithFrame:tabBarController.tabBar.bounds];
40 |
41 | tabBar.tabBarItemAttributes = @[@{kLLTabBarItemAttributeTitle : @"首页", kLLTabBarItemAttributeNormalImageName : @"home_normal", kLLTabBarItemAttributeSelectedImageName : @"home_highlight", kLLTabBarItemAttributeType : @(LLTabBarItemNormal)},
42 | @{kLLTabBarItemAttributeTitle : @"同城", kLLTabBarItemAttributeNormalImageName : @"mycity_normal", kLLTabBarItemAttributeSelectedImageName : @"mycity_highlight", kLLTabBarItemAttributeType : @(LLTabBarItemNormal)},
43 | @{kLLTabBarItemAttributeTitle : @"发布", kLLTabBarItemAttributeNormalImageName : @"post_normal", kLLTabBarItemAttributeSelectedImageName : @"post_normal", kLLTabBarItemAttributeType : @(LLTabBarItemRise)},
44 | @{kLLTabBarItemAttributeTitle : @"消息", kLLTabBarItemAttributeNormalImageName : @"message_normal", kLLTabBarItemAttributeSelectedImageName : @"message_highlight", kLLTabBarItemAttributeType : @(LLTabBarItemNormal)},
45 | @{kLLTabBarItemAttributeTitle : @"我的", kLLTabBarItemAttributeNormalImageName : @"account_normal", kLLTabBarItemAttributeSelectedImageName : @"account_highlight", kLLTabBarItemAttributeType : @(LLTabBarItemNormal)}];
46 |
47 | // tabBar.tabBarItemAttributes = @[@{kLLTabBarItemAttributeTitle : @"首页", kLLTabBarItemAttributeNormalImageName : @"home_normal", kLLTabBarItemAttributeSelectedImageName : @"home_highlight", kLLTabBarItemAttributeType : @(LLTabBarItemNormal)},
48 | // @{kLLTabBarItemAttributeTitle : @"发布", kLLTabBarItemAttributeNormalImageName : @"post_normal", kLLTabBarItemAttributeSelectedImageName : @"post_normal", kLLTabBarItemAttributeType : @(LLTabBarItemRise)},
49 | // @{kLLTabBarItemAttributeTitle : @"消息", kLLTabBarItemAttributeNormalImageName : @"message_normal", kLLTabBarItemAttributeSelectedImageName : @"message_highlight", kLLTabBarItemAttributeType : @(LLTabBarItemNormal)}];
50 |
51 | // tabBar.tabBarItemAttributes = @[@{kLLTabBarItemAttributeTitle : @"首页", kLLTabBarItemAttributeNormalImageName : @"home_normal", kLLTabBarItemAttributeSelectedImageName : @"home_highlight", kLLTabBarItemAttributeType : @(LLTabBarItemNormal)},
52 | // @{kLLTabBarItemAttributeTitle : @"同城", kLLTabBarItemAttributeNormalImageName : @"mycity_normal", kLLTabBarItemAttributeSelectedImageName : @"mycity_highlight", kLLTabBarItemAttributeType : @(LLTabBarItemNormal)}];
53 |
54 | tabBar.delegate = self;
55 | [tabBarController.tabBar addSubview:tabBar];
56 |
57 | self.window.rootViewController = tabBarController;
58 |
59 | return YES;
60 | }
61 |
62 | #pragma mark - LLTabBarDelegate
63 |
64 | - (void)tabBarDidSelectedRiseButton {
65 | UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
66 | UIViewController *viewController = tabBarController.selectedViewController;
67 |
68 | UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:nil
69 | delegate:self
70 | cancelButtonTitle:@"取消"
71 | destructiveButtonTitle:nil
72 | otherButtonTitles:@"拍照", @"从相册选取", @"淘宝一键转卖", nil];
73 | [actionSheet showInView:viewController.view];
74 | }
75 |
76 | #pragma mark - UIActionSheetDelegate
77 |
78 | - (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex {
79 | NSLog(@"buttonIndex = %ld", buttonIndex);
80 | }
81 |
82 | #pragma mark -
83 |
84 | - (void)applicationWillResignActive:(UIApplication *)application {
85 | // 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.
86 | // 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.
87 | }
88 |
89 | - (void)applicationDidEnterBackground:(UIApplication *)application {
90 | // 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.
91 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
92 | }
93 |
94 | - (void)applicationWillEnterForeground:(UIApplication *)application {
95 | // 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.
96 | }
97 |
98 | - (void)applicationDidBecomeActive:(UIApplication *)application {
99 | // 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.
100 | }
101 |
102 | - (void)applicationWillTerminate:(UIApplication *)application {
103 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
104 | }
105 |
106 | @end
107 |
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo/ViewController/Home/LLHomeViewController.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 |
33 |
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 |
68 |
69 |
70 |
71 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
--------------------------------------------------------------------------------
/LLRiseTabBarDemo/LLRiseTabBarDemo.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 46;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 820978E81BD3A37600CF9D0C /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 820978E71BD3A37600CF9D0C /* main.m */; };
11 | 820978EB1BD3A37700CF9D0C /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 820978EA1BD3A37700CF9D0C /* AppDelegate.m */; };
12 | 820978F31BD3A37700CF9D0C /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 820978F21BD3A37700CF9D0C /* Assets.xcassets */; };
13 | 820979071BD3AA9400CF9D0C /* LLBaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 820979061BD3AA9400CF9D0C /* LLBaseViewController.m */; };
14 | 820979101BD3AB2800CF9D0C /* LLHomeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8209790E1BD3AB2800CF9D0C /* LLHomeViewController.m */; };
15 | 820979111BD3AB2800CF9D0C /* LLHomeViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8209790F1BD3AB2800CF9D0C /* LLHomeViewController.xib */; };
16 | 820979151BD3AEA800CF9D0C /* LLMessageViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 820979131BD3AEA800CF9D0C /* LLMessageViewController.m */; };
17 | 820979161BD3AEA800CF9D0C /* LLMessageViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 820979141BD3AEA800CF9D0C /* LLMessageViewController.xib */; };
18 | 8209791A1BD3AFAC00CF9D0C /* LLMineViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 820979181BD3AFAC00CF9D0C /* LLMineViewController.m */; };
19 | 8209791B1BD3AFAC00CF9D0C /* LLMineViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 820979191BD3AFAC00CF9D0C /* LLMineViewController.xib */; };
20 | 8209791F1BD3AFDB00CF9D0C /* LLSameCityViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8209791D1BD3AFDB00CF9D0C /* LLSameCityViewController.m */; };
21 | 820979201BD3AFDB00CF9D0C /* LLSameCityViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8209791E1BD3AFDB00CF9D0C /* LLSameCityViewController.xib */; };
22 | 820979281BD3B28700CF9D0C /* LLTabBar.m in Sources */ = {isa = PBXBuildFile; fileRef = 820979271BD3B28700CF9D0C /* LLTabBar.m */; };
23 | 8209792B1BD3C1ED00CF9D0C /* LLTabBarItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 8209792A1BD3C1ED00CF9D0C /* LLTabBarItem.m */; };
24 | /* End PBXBuildFile section */
25 |
26 | /* Begin PBXFileReference section */
27 | 820978E31BD3A37600CF9D0C /* LLRiseTabBarDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LLRiseTabBarDemo.app; sourceTree = BUILT_PRODUCTS_DIR; };
28 | 820978E71BD3A37600CF9D0C /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
29 | 820978E91BD3A37700CF9D0C /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; };
30 | 820978EA1BD3A37700CF9D0C /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; };
31 | 820978F21BD3A37700CF9D0C /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
32 | 820978F71BD3A37700CF9D0C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
33 | 820979051BD3AA9400CF9D0C /* LLBaseViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LLBaseViewController.h; sourceTree = ""; };
34 | 820979061BD3AA9400CF9D0C /* LLBaseViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LLBaseViewController.m; sourceTree = ""; };
35 | 8209790D1BD3AB2800CF9D0C /* LLHomeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LLHomeViewController.h; sourceTree = ""; };
36 | 8209790E1BD3AB2800CF9D0C /* LLHomeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LLHomeViewController.m; sourceTree = ""; };
37 | 8209790F1BD3AB2800CF9D0C /* LLHomeViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LLHomeViewController.xib; sourceTree = ""; };
38 | 820979121BD3AEA800CF9D0C /* LLMessageViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LLMessageViewController.h; sourceTree = ""; };
39 | 820979131BD3AEA800CF9D0C /* LLMessageViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LLMessageViewController.m; sourceTree = ""; };
40 | 820979141BD3AEA800CF9D0C /* LLMessageViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LLMessageViewController.xib; sourceTree = ""; };
41 | 820979171BD3AFAC00CF9D0C /* LLMineViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LLMineViewController.h; sourceTree = ""; };
42 | 820979181BD3AFAC00CF9D0C /* LLMineViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LLMineViewController.m; sourceTree = ""; };
43 | 820979191BD3AFAC00CF9D0C /* LLMineViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LLMineViewController.xib; sourceTree = ""; };
44 | 8209791C1BD3AFDB00CF9D0C /* LLSameCityViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LLSameCityViewController.h; sourceTree = ""; };
45 | 8209791D1BD3AFDB00CF9D0C /* LLSameCityViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LLSameCityViewController.m; sourceTree = ""; };
46 | 8209791E1BD3AFDB00CF9D0C /* LLSameCityViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LLSameCityViewController.xib; sourceTree = ""; };
47 | 820979261BD3B28700CF9D0C /* LLTabBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LLTabBar.h; sourceTree = ""; };
48 | 820979271BD3B28700CF9D0C /* LLTabBar.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LLTabBar.m; sourceTree = ""; };
49 | 820979291BD3C1ED00CF9D0C /* LLTabBarItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LLTabBarItem.h; sourceTree = ""; };
50 | 8209792A1BD3C1ED00CF9D0C /* LLTabBarItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LLTabBarItem.m; sourceTree = ""; };
51 | 827809371BD3CB7B0096F95C /* LLRiseTabBarDemo.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LLRiseTabBarDemo.pch; sourceTree = ""; };
52 | /* End PBXFileReference section */
53 |
54 | /* Begin PBXFrameworksBuildPhase section */
55 | 820978E01BD3A37600CF9D0C /* Frameworks */ = {
56 | isa = PBXFrameworksBuildPhase;
57 | buildActionMask = 2147483647;
58 | files = (
59 | );
60 | runOnlyForDeploymentPostprocessing = 0;
61 | };
62 | /* End PBXFrameworksBuildPhase section */
63 |
64 | /* Begin PBXGroup section */
65 | 820978DA1BD3A37600CF9D0C = {
66 | isa = PBXGroup;
67 | children = (
68 | 820978E51BD3A37600CF9D0C /* LLRiseTabBarDemo */,
69 | 820979211BD3B0FE00CF9D0C /* Frameworks */,
70 | 820978E41BD3A37600CF9D0C /* Products */,
71 | );
72 | sourceTree = "";
73 | };
74 | 820978E41BD3A37600CF9D0C /* Products */ = {
75 | isa = PBXGroup;
76 | children = (
77 | 820978E31BD3A37600CF9D0C /* LLRiseTabBarDemo.app */,
78 | );
79 | name = Products;
80 | sourceTree = "";
81 | };
82 | 820978E51BD3A37600CF9D0C /* LLRiseTabBarDemo */ = {
83 | isa = PBXGroup;
84 | children = (
85 | 820979241BD3B1CC00CF9D0C /* CustomView */,
86 | 820978FD1BD3A94100CF9D0C /* ViewController */,
87 | 820978E91BD3A37700CF9D0C /* AppDelegate.h */,
88 | 820978EA1BD3A37700CF9D0C /* AppDelegate.m */,
89 | 820978F21BD3A37700CF9D0C /* Assets.xcassets */,
90 | 820978E61BD3A37600CF9D0C /* Supporting Files */,
91 | );
92 | path = LLRiseTabBarDemo;
93 | sourceTree = "";
94 | };
95 | 820978E61BD3A37600CF9D0C /* Supporting Files */ = {
96 | isa = PBXGroup;
97 | children = (
98 | 820978E71BD3A37600CF9D0C /* main.m */,
99 | 820978F71BD3A37700CF9D0C /* Info.plist */,
100 | 827809371BD3CB7B0096F95C /* LLRiseTabBarDemo.pch */,
101 | );
102 | name = "Supporting Files";
103 | sourceTree = "";
104 | };
105 | 820978FD1BD3A94100CF9D0C /* ViewController */ = {
106 | isa = PBXGroup;
107 | children = (
108 | 820979041BD3AA9400CF9D0C /* Base */,
109 | 820979081BD3AB0600CF9D0C /* Home */,
110 | 820979091BD3AB0600CF9D0C /* Message */,
111 | 8209790A1BD3AB0600CF9D0C /* Mine */,
112 | 8209790B1BD3AB0600CF9D0C /* Publish */,
113 | 8209790C1BD3AB0600CF9D0C /* SameCity */,
114 | );
115 | path = ViewController;
116 | sourceTree = "";
117 | };
118 | 820979041BD3AA9400CF9D0C /* Base */ = {
119 | isa = PBXGroup;
120 | children = (
121 | 820979051BD3AA9400CF9D0C /* LLBaseViewController.h */,
122 | 820979061BD3AA9400CF9D0C /* LLBaseViewController.m */,
123 | );
124 | path = Base;
125 | sourceTree = "";
126 | };
127 | 820979081BD3AB0600CF9D0C /* Home */ = {
128 | isa = PBXGroup;
129 | children = (
130 | 8209790D1BD3AB2800CF9D0C /* LLHomeViewController.h */,
131 | 8209790E1BD3AB2800CF9D0C /* LLHomeViewController.m */,
132 | 8209790F1BD3AB2800CF9D0C /* LLHomeViewController.xib */,
133 | );
134 | path = Home;
135 | sourceTree = "";
136 | };
137 | 820979091BD3AB0600CF9D0C /* Message */ = {
138 | isa = PBXGroup;
139 | children = (
140 | 820979121BD3AEA800CF9D0C /* LLMessageViewController.h */,
141 | 820979131BD3AEA800CF9D0C /* LLMessageViewController.m */,
142 | 820979141BD3AEA800CF9D0C /* LLMessageViewController.xib */,
143 | );
144 | path = Message;
145 | sourceTree = "";
146 | };
147 | 8209790A1BD3AB0600CF9D0C /* Mine */ = {
148 | isa = PBXGroup;
149 | children = (
150 | 820979171BD3AFAC00CF9D0C /* LLMineViewController.h */,
151 | 820979181BD3AFAC00CF9D0C /* LLMineViewController.m */,
152 | 820979191BD3AFAC00CF9D0C /* LLMineViewController.xib */,
153 | );
154 | path = Mine;
155 | sourceTree = "";
156 | };
157 | 8209790B1BD3AB0600CF9D0C /* Publish */ = {
158 | isa = PBXGroup;
159 | children = (
160 | );
161 | path = Publish;
162 | sourceTree = "";
163 | };
164 | 8209790C1BD3AB0600CF9D0C /* SameCity */ = {
165 | isa = PBXGroup;
166 | children = (
167 | 8209791C1BD3AFDB00CF9D0C /* LLSameCityViewController.h */,
168 | 8209791D1BD3AFDB00CF9D0C /* LLSameCityViewController.m */,
169 | 8209791E1BD3AFDB00CF9D0C /* LLSameCityViewController.xib */,
170 | );
171 | path = SameCity;
172 | sourceTree = "";
173 | };
174 | 820979211BD3B0FE00CF9D0C /* Frameworks */ = {
175 | isa = PBXGroup;
176 | children = (
177 | );
178 | name = Frameworks;
179 | sourceTree = "";
180 | };
181 | 820979241BD3B1CC00CF9D0C /* CustomView */ = {
182 | isa = PBXGroup;
183 | children = (
184 | 820979251BD3B1CC00CF9D0C /* LLTabBar */,
185 | );
186 | path = CustomView;
187 | sourceTree = "";
188 | };
189 | 820979251BD3B1CC00CF9D0C /* LLTabBar */ = {
190 | isa = PBXGroup;
191 | children = (
192 | 820979261BD3B28700CF9D0C /* LLTabBar.h */,
193 | 820979271BD3B28700CF9D0C /* LLTabBar.m */,
194 | 820979291BD3C1ED00CF9D0C /* LLTabBarItem.h */,
195 | 8209792A1BD3C1ED00CF9D0C /* LLTabBarItem.m */,
196 | );
197 | path = LLTabBar;
198 | sourceTree = "";
199 | };
200 | /* End PBXGroup section */
201 |
202 | /* Begin PBXNativeTarget section */
203 | 820978E21BD3A37600CF9D0C /* LLRiseTabBarDemo */ = {
204 | isa = PBXNativeTarget;
205 | buildConfigurationList = 820978FA1BD3A37700CF9D0C /* Build configuration list for PBXNativeTarget "LLRiseTabBarDemo" */;
206 | buildPhases = (
207 | 820978DF1BD3A37600CF9D0C /* Sources */,
208 | 820978E01BD3A37600CF9D0C /* Frameworks */,
209 | 820978E11BD3A37600CF9D0C /* Resources */,
210 | );
211 | buildRules = (
212 | );
213 | dependencies = (
214 | );
215 | name = LLRiseTabBarDemo;
216 | productName = LLRiseTabBarDemo;
217 | productReference = 820978E31BD3A37600CF9D0C /* LLRiseTabBarDemo.app */;
218 | productType = "com.apple.product-type.application";
219 | };
220 | /* End PBXNativeTarget section */
221 |
222 | /* Begin PBXProject section */
223 | 820978DB1BD3A37600CF9D0C /* Project object */ = {
224 | isa = PBXProject;
225 | attributes = {
226 | LastUpgradeCheck = 0700;
227 | ORGANIZATIONNAME = melody;
228 | TargetAttributes = {
229 | 820978E21BD3A37600CF9D0C = {
230 | CreatedOnToolsVersion = 7.0.1;
231 | };
232 | };
233 | };
234 | buildConfigurationList = 820978DE1BD3A37600CF9D0C /* Build configuration list for PBXProject "LLRiseTabBarDemo" */;
235 | compatibilityVersion = "Xcode 3.2";
236 | developmentRegion = English;
237 | hasScannedForEncodings = 0;
238 | knownRegions = (
239 | en,
240 | Base,
241 | );
242 | mainGroup = 820978DA1BD3A37600CF9D0C;
243 | productRefGroup = 820978E41BD3A37600CF9D0C /* Products */;
244 | projectDirPath = "";
245 | projectRoot = "";
246 | targets = (
247 | 820978E21BD3A37600CF9D0C /* LLRiseTabBarDemo */,
248 | );
249 | };
250 | /* End PBXProject section */
251 |
252 | /* Begin PBXResourcesBuildPhase section */
253 | 820978E11BD3A37600CF9D0C /* Resources */ = {
254 | isa = PBXResourcesBuildPhase;
255 | buildActionMask = 2147483647;
256 | files = (
257 | 820979201BD3AFDB00CF9D0C /* LLSameCityViewController.xib in Resources */,
258 | 820978F31BD3A37700CF9D0C /* Assets.xcassets in Resources */,
259 | 8209791B1BD3AFAC00CF9D0C /* LLMineViewController.xib in Resources */,
260 | 820979161BD3AEA800CF9D0C /* LLMessageViewController.xib in Resources */,
261 | 820979111BD3AB2800CF9D0C /* LLHomeViewController.xib in Resources */,
262 | );
263 | runOnlyForDeploymentPostprocessing = 0;
264 | };
265 | /* End PBXResourcesBuildPhase section */
266 |
267 | /* Begin PBXSourcesBuildPhase section */
268 | 820978DF1BD3A37600CF9D0C /* Sources */ = {
269 | isa = PBXSourcesBuildPhase;
270 | buildActionMask = 2147483647;
271 | files = (
272 | 8209791F1BD3AFDB00CF9D0C /* LLSameCityViewController.m in Sources */,
273 | 8209792B1BD3C1ED00CF9D0C /* LLTabBarItem.m in Sources */,
274 | 820979281BD3B28700CF9D0C /* LLTabBar.m in Sources */,
275 | 820979071BD3AA9400CF9D0C /* LLBaseViewController.m in Sources */,
276 | 820979101BD3AB2800CF9D0C /* LLHomeViewController.m in Sources */,
277 | 820978EB1BD3A37700CF9D0C /* AppDelegate.m in Sources */,
278 | 820979151BD3AEA800CF9D0C /* LLMessageViewController.m in Sources */,
279 | 820978E81BD3A37600CF9D0C /* main.m in Sources */,
280 | 8209791A1BD3AFAC00CF9D0C /* LLMineViewController.m in Sources */,
281 | );
282 | runOnlyForDeploymentPostprocessing = 0;
283 | };
284 | /* End PBXSourcesBuildPhase section */
285 |
286 | /* Begin XCBuildConfiguration section */
287 | 820978F81BD3A37700CF9D0C /* Debug */ = {
288 | isa = XCBuildConfiguration;
289 | buildSettings = {
290 | ALWAYS_SEARCH_USER_PATHS = NO;
291 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
292 | CLANG_CXX_LIBRARY = "libc++";
293 | CLANG_ENABLE_MODULES = YES;
294 | CLANG_ENABLE_OBJC_ARC = YES;
295 | CLANG_WARN_BOOL_CONVERSION = YES;
296 | CLANG_WARN_CONSTANT_CONVERSION = YES;
297 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
298 | CLANG_WARN_EMPTY_BODY = YES;
299 | CLANG_WARN_ENUM_CONVERSION = YES;
300 | CLANG_WARN_INT_CONVERSION = YES;
301 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
302 | CLANG_WARN_UNREACHABLE_CODE = YES;
303 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
304 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
305 | COPY_PHASE_STRIP = NO;
306 | DEBUG_INFORMATION_FORMAT = dwarf;
307 | ENABLE_STRICT_OBJC_MSGSEND = YES;
308 | ENABLE_TESTABILITY = YES;
309 | GCC_C_LANGUAGE_STANDARD = gnu99;
310 | GCC_DYNAMIC_NO_PIC = NO;
311 | GCC_NO_COMMON_BLOCKS = YES;
312 | GCC_OPTIMIZATION_LEVEL = 0;
313 | GCC_PREPROCESSOR_DEFINITIONS = (
314 | "DEBUG=1",
315 | "$(inherited)",
316 | );
317 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
318 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
319 | GCC_WARN_UNDECLARED_SELECTOR = YES;
320 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
321 | GCC_WARN_UNUSED_FUNCTION = YES;
322 | GCC_WARN_UNUSED_VARIABLE = YES;
323 | IPHONEOS_DEPLOYMENT_TARGET = 7.0;
324 | MTL_ENABLE_DEBUG_INFO = YES;
325 | ONLY_ACTIVE_ARCH = YES;
326 | SDKROOT = iphoneos;
327 | };
328 | name = Debug;
329 | };
330 | 820978F91BD3A37700CF9D0C /* Release */ = {
331 | isa = XCBuildConfiguration;
332 | buildSettings = {
333 | ALWAYS_SEARCH_USER_PATHS = NO;
334 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
335 | CLANG_CXX_LIBRARY = "libc++";
336 | CLANG_ENABLE_MODULES = YES;
337 | CLANG_ENABLE_OBJC_ARC = YES;
338 | CLANG_WARN_BOOL_CONVERSION = YES;
339 | CLANG_WARN_CONSTANT_CONVERSION = YES;
340 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
341 | CLANG_WARN_EMPTY_BODY = YES;
342 | CLANG_WARN_ENUM_CONVERSION = YES;
343 | CLANG_WARN_INT_CONVERSION = YES;
344 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
345 | CLANG_WARN_UNREACHABLE_CODE = YES;
346 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
347 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
348 | COPY_PHASE_STRIP = NO;
349 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
350 | ENABLE_NS_ASSERTIONS = NO;
351 | ENABLE_STRICT_OBJC_MSGSEND = YES;
352 | GCC_C_LANGUAGE_STANDARD = gnu99;
353 | GCC_NO_COMMON_BLOCKS = YES;
354 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
355 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
356 | GCC_WARN_UNDECLARED_SELECTOR = YES;
357 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
358 | GCC_WARN_UNUSED_FUNCTION = YES;
359 | GCC_WARN_UNUSED_VARIABLE = YES;
360 | IPHONEOS_DEPLOYMENT_TARGET = 7.0;
361 | MTL_ENABLE_DEBUG_INFO = NO;
362 | SDKROOT = iphoneos;
363 | VALIDATE_PRODUCT = YES;
364 | };
365 | name = Release;
366 | };
367 | 820978FB1BD3A37700CF9D0C /* Debug */ = {
368 | isa = XCBuildConfiguration;
369 | buildSettings = {
370 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
371 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = BrandAsset;
372 | FRAMEWORK_SEARCH_PATHS = (
373 | "$(inherited)",
374 | "$(PROJECT_DIR)",
375 | );
376 | GCC_PREFIX_HEADER = "$(SRCROOT)/LLRiseTabBarDemo/LLRiseTabBarDemo.pch";
377 | INFOPLIST_FILE = LLRiseTabBarDemo/Info.plist;
378 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
379 | OTHER_LDFLAGS = "";
380 | PRODUCT_BUNDLE_IDENTIFIER = com.meilbn.LLRiseTabBarDemo;
381 | PRODUCT_NAME = "$(TARGET_NAME)";
382 | };
383 | name = Debug;
384 | };
385 | 820978FC1BD3A37700CF9D0C /* Release */ = {
386 | isa = XCBuildConfiguration;
387 | buildSettings = {
388 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
389 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = BrandAsset;
390 | FRAMEWORK_SEARCH_PATHS = (
391 | "$(inherited)",
392 | "$(PROJECT_DIR)",
393 | );
394 | GCC_PREFIX_HEADER = "$(SRCROOT)/LLRiseTabBarDemo/LLRiseTabBarDemo.pch";
395 | INFOPLIST_FILE = LLRiseTabBarDemo/Info.plist;
396 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
397 | OTHER_LDFLAGS = "";
398 | PRODUCT_BUNDLE_IDENTIFIER = com.meilbn.LLRiseTabBarDemo;
399 | PRODUCT_NAME = "$(TARGET_NAME)";
400 | };
401 | name = Release;
402 | };
403 | /* End XCBuildConfiguration section */
404 |
405 | /* Begin XCConfigurationList section */
406 | 820978DE1BD3A37600CF9D0C /* Build configuration list for PBXProject "LLRiseTabBarDemo" */ = {
407 | isa = XCConfigurationList;
408 | buildConfigurations = (
409 | 820978F81BD3A37700CF9D0C /* Debug */,
410 | 820978F91BD3A37700CF9D0C /* Release */,
411 | );
412 | defaultConfigurationIsVisible = 0;
413 | defaultConfigurationName = Release;
414 | };
415 | 820978FA1BD3A37700CF9D0C /* Build configuration list for PBXNativeTarget "LLRiseTabBarDemo" */ = {
416 | isa = XCConfigurationList;
417 | buildConfigurations = (
418 | 820978FB1BD3A37700CF9D0C /* Debug */,
419 | 820978FC1BD3A37700CF9D0C /* Release */,
420 | );
421 | defaultConfigurationIsVisible = 0;
422 | defaultConfigurationName = Release;
423 | };
424 | /* End XCConfigurationList section */
425 | };
426 | rootObject = 820978DB1BD3A37600CF9D0C /* Project object */;
427 | }
428 |
--------------------------------------------------------------------------------