mirror of
https://github.com/wahyd4/Yep.git
synced 2026-08-11 22:06:40 +10:00
Merge branch 'feature/tap_tab_logic' into develop
This commit is contained in:
+1
-1
@@ -52,7 +52,7 @@ DEPENDENCIES:
|
||||
|
||||
EXTERNAL SOURCES:
|
||||
MZFayeClient:
|
||||
:path: "../CatchLib-iOS/MZFayeClient/"
|
||||
:path: ../CatchLib-iOS/MZFayeClient/
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
1PasswordExtension: 676a216461ffa9189db66541b5a2465e10ae4743
|
||||
|
||||
@@ -246,6 +246,8 @@
|
||||
50DEE0321BE339B000015741 /* LoadMoreTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 50DEE0301BE339B000015741 /* LoadMoreTableViewCell.xib */; };
|
||||
50DEE0361BE3720F00015741 /* LoadMoreCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50DEE0341BE3720F00015741 /* LoadMoreCollectionViewCell.swift */; };
|
||||
50DEE0371BE3720F00015741 /* LoadMoreCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 50DEE0351BE3720F00015741 /* LoadMoreCollectionViewCell.xib */; };
|
||||
50DEE0391BE7020900015741 /* UITableView+Yep.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50DEE0381BE7020900015741 /* UITableView+Yep.swift */; };
|
||||
50DEE03B1BE70B5100015741 /* UICollectionView+Yep.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50DEE03A1BE70B5100015741 /* UICollectionView+Yep.swift */; };
|
||||
50E114F41ABBF9CC00F13000 /* Models.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50E114F31ABBF9CC00F13000 /* Models.swift */; };
|
||||
50E114F91ABC137A00F13000 /* YepServiceSync.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50E114F81ABC137A00F13000 /* YepServiceSync.swift */; };
|
||||
50E114FC1ABC549300F13000 /* ContactsCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50E114FA1ABC549300F13000 /* ContactsCell.swift */; };
|
||||
@@ -563,6 +565,8 @@
|
||||
50DEE0301BE339B000015741 /* LoadMoreTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = LoadMoreTableViewCell.xib; path = Views/Cells/LoadMore/LoadMoreTableViewCell.xib; sourceTree = "<group>"; };
|
||||
50DEE0341BE3720F00015741 /* LoadMoreCollectionViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = LoadMoreCollectionViewCell.swift; path = Views/Cells/LoadMore/LoadMoreCollectionViewCell.swift; sourceTree = "<group>"; };
|
||||
50DEE0351BE3720F00015741 /* LoadMoreCollectionViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = LoadMoreCollectionViewCell.xib; path = Views/Cells/LoadMore/LoadMoreCollectionViewCell.xib; sourceTree = "<group>"; };
|
||||
50DEE0381BE7020900015741 /* UITableView+Yep.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "UITableView+Yep.swift"; path = "Extensions/UITableView+Yep.swift"; sourceTree = "<group>"; };
|
||||
50DEE03A1BE70B5100015741 /* UICollectionView+Yep.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "UICollectionView+Yep.swift"; path = "Extensions/UICollectionView+Yep.swift"; sourceTree = "<group>"; };
|
||||
50E114F31ABBF9CC00F13000 /* Models.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Models.swift; path = Realm/Models.swift; sourceTree = "<group>"; };
|
||||
50E114F81ABC137A00F13000 /* YepServiceSync.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = YepServiceSync.swift; path = Services/YepServiceSync.swift; sourceTree = "<group>"; };
|
||||
50E114FA1ABC549300F13000 /* ContactsCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ContactsCell.swift; path = Views/Cells/Contacts/ContactsCell.swift; sourceTree = "<group>"; };
|
||||
@@ -987,6 +991,8 @@
|
||||
5080EB1E1B93F932006F3C2D /* NSBundle+Yep.swift */,
|
||||
50A820231B969B0F007CD30E /* NSTimeZone+Yep.swift */,
|
||||
504F5E6E1B9F1F13006CE418 /* NSURLRequest+cURL.swift */,
|
||||
50DEE0381BE7020900015741 /* UITableView+Yep.swift */,
|
||||
50DEE03A1BE70B5100015741 /* UICollectionView+Yep.swift */,
|
||||
);
|
||||
name = Extensions;
|
||||
sourceTree = "<group>";
|
||||
@@ -2371,6 +2377,7 @@
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
50DEE0391BE7020900015741 /* UITableView+Yep.swift in Sources */,
|
||||
50894CFE1AEA5A78000981AF /* EditProfileViewController.swift in Sources */,
|
||||
50CDBE421ACA9B4200459CE0 /* ChatRightImageCell.swift in Sources */,
|
||||
5099B9C41AB9510D002F940B /* RankView.swift in Sources */,
|
||||
@@ -2410,6 +2417,7 @@
|
||||
502AE53D1AB87C0D005BD199 /* YepUserDefaults.swift in Sources */,
|
||||
50F5AF881BBBB2AE0033C9BC /* HorizontalLineView.swift in Sources */,
|
||||
50EB8CC41AE89F12001AC1EE /* ChatRightVideoCell.swift in Sources */,
|
||||
50DEE03B1BE70B5100015741 /* UICollectionView+Yep.swift in Sources */,
|
||||
50AACECF1BB93336004DD54B /* FeedMediaView.swift in Sources */,
|
||||
50DEE02C1BE209FF00015741 /* DeletedFeedConversationCell.swift in Sources */,
|
||||
50D4D0DB1AFA825B005AEB6F /* MediaControlView.swift in Sources */,
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
//
|
||||
// UICollectionView+Yep.swift
|
||||
// Yep
|
||||
//
|
||||
// Created by nixzhu on 15/11/2.
|
||||
// Copyright © 2015年 Catch Inc. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
extension UICollectionView {
|
||||
|
||||
var yep_isAtTop: Bool {
|
||||
|
||||
return contentOffset.y == -contentInset.top
|
||||
}
|
||||
|
||||
func yep_scrollsToTop() {
|
||||
|
||||
let topPoint = CGPoint(x: 0, y: -contentInset.top)
|
||||
setContentOffset(topPoint, animated: true)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
//
|
||||
// UITableView+Yep.swift
|
||||
// Yep
|
||||
//
|
||||
// Created by nixzhu on 15/11/2.
|
||||
// Copyright © 2015年 Catch Inc. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
extension UITableView {
|
||||
|
||||
var yep_isAtTop: Bool {
|
||||
|
||||
return contentOffset.y == -contentInset.top
|
||||
}
|
||||
|
||||
func yep_scrollsToTop() {
|
||||
|
||||
let topPoint = CGPoint(x: 0, y: -contentInset.top)
|
||||
setContentOffset(topPoint, animated: true)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,6 +10,33 @@ import UIKit
|
||||
|
||||
class YepTabBarController: UITabBarController {
|
||||
|
||||
enum Tab: Int {
|
||||
|
||||
case Conversations
|
||||
case Contacts
|
||||
case Feeds
|
||||
case Discover
|
||||
case Profile
|
||||
|
||||
var title: String {
|
||||
|
||||
switch self {
|
||||
case .Conversations:
|
||||
return NSLocalizedString("Chats", comment: "")
|
||||
case .Contacts:
|
||||
return NSLocalizedString("Contacts", comment: "")
|
||||
case .Feeds:
|
||||
return NSLocalizedString("Feeds", comment: "")
|
||||
case .Discover:
|
||||
return NSLocalizedString("Discover", comment: "")
|
||||
case .Profile:
|
||||
return NSLocalizedString("Profile", comment: "")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var previousTab = Tab.Conversations
|
||||
|
||||
struct Listener {
|
||||
static let lauchStyle = "YepTabBarController.lauchStyle"
|
||||
}
|
||||
@@ -37,19 +64,12 @@ class YepTabBarController: UITabBarController {
|
||||
}
|
||||
*/
|
||||
|
||||
// Set Titles
|
||||
|
||||
if let items = tabBar.items {
|
||||
|
||||
let titles = [
|
||||
NSLocalizedString("Chats", comment: ""),
|
||||
NSLocalizedString("Contacts", comment: ""),
|
||||
NSLocalizedString("Feeds", comment: ""),
|
||||
NSLocalizedString("Discover", comment: ""),
|
||||
NSLocalizedString("Profile", comment: ""),
|
||||
]
|
||||
|
||||
for i in 0..<items.count {
|
||||
let item = items[i]
|
||||
item.title = titles[i]
|
||||
item.title = Tab(rawValue: i)?.title
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,10 +85,63 @@ class YepTabBarController: UITabBarController {
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - UITabBarControllerDelegate
|
||||
|
||||
extension YepTabBarController: UITabBarControllerDelegate {
|
||||
|
||||
func tabBarController(tabBarController: UITabBarController, didSelectViewController viewController: UIViewController) {
|
||||
|
||||
guard
|
||||
let tab = Tab(rawValue: selectedIndex),
|
||||
let nvc = viewController as? UINavigationController else {
|
||||
return
|
||||
}
|
||||
|
||||
// 不相等才继续,确保第一次 tap 不做事
|
||||
|
||||
if tab != previousTab {
|
||||
previousTab = tab
|
||||
return
|
||||
}
|
||||
|
||||
switch tab {
|
||||
|
||||
case .Conversations:
|
||||
if let vc = nvc.topViewController as? ConversationsViewController {
|
||||
if !vc.conversationsTableView.yep_isAtTop {
|
||||
vc.conversationsTableView.yep_scrollsToTop()
|
||||
}
|
||||
}
|
||||
|
||||
case .Contacts:
|
||||
if let vc = nvc.topViewController as? ContactsViewController {
|
||||
if !vc.contactsTableView.yep_isAtTop {
|
||||
vc.contactsTableView.yep_scrollsToTop()
|
||||
}
|
||||
}
|
||||
|
||||
case .Feeds:
|
||||
if let vc = nvc.topViewController as? FeedsViewController {
|
||||
if !vc.feedsTableView.yep_isAtTop {
|
||||
vc.feedsTableView.yep_scrollsToTop()
|
||||
}
|
||||
}
|
||||
|
||||
case .Discover:
|
||||
if let vc = nvc.topViewController as? DiscoverViewController {
|
||||
if !vc.discoveredUsersCollectionView.yep_isAtTop {
|
||||
vc.discoveredUsersCollectionView.yep_scrollsToTop()
|
||||
}
|
||||
}
|
||||
|
||||
case .Profile:
|
||||
if let vc = nvc.topViewController as? ProfileViewController {
|
||||
if !vc.profileCollectionView.yep_isAtTop {
|
||||
vc.profileCollectionView.yep_scrollsToTop()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
if selectedIndex == 1 {
|
||||
if let nvc = viewController as? UINavigationController, vc = nvc.topViewController as? ContactsViewController {
|
||||
|
||||
Reference in New Issue
Block a user