mirror of
https://github.com/viq/NewsBlur.git
synced 2025-09-18 21:43:31 +00:00
parent
4a2a4ffb75
commit
8cc59dccf4
16 changed files with 425 additions and 127 deletions
|
@ -1,5 +1,5 @@
|
|||
//
|
||||
// StoryPageObjCDelegate.h
|
||||
// DetailObjCViewController.h
|
||||
// NewsBlur
|
||||
//
|
||||
// Created by Samuel Clay on 11/2/12.
|
||||
|
@ -14,7 +14,7 @@
|
|||
|
||||
@class StoryDetailViewController;
|
||||
|
||||
@interface StoryPageObjCDelegate : BaseViewController
|
||||
@interface DetailObjCViewController : BaseViewController
|
||||
<UIScrollViewDelegate, UIPopoverControllerDelegate, UIPopoverPresentationControllerDelegate, UIGestureRecognizerDelegate> {
|
||||
NewsBlurAppDelegate *appDelegate;
|
||||
THCircularProgressView *circularProgressView;
|
|
@ -1,12 +1,12 @@
|
|||
//
|
||||
// StoryPageObjCDelegate.m
|
||||
// DetailObjCViewController.m
|
||||
// NewsBlur
|
||||
//
|
||||
// Created by Samuel Clay on 11/2/12.
|
||||
// Copyright (c) 2012 NewsBlur. All rights reserved.
|
||||
//
|
||||
|
||||
#import "StoryPageObjCDelegate.h"
|
||||
#import "DetailObjCViewController.h"
|
||||
#import "NewsBlurAppDelegate.h"
|
||||
#import "FontSettingsViewController.h"
|
||||
#import "UserProfileViewController.h"
|
||||
|
@ -24,7 +24,7 @@
|
|||
|
||||
@import WebKit;
|
||||
|
||||
@interface StoryPageObjCDelegate ()
|
||||
@interface DetailObjCViewController ()
|
||||
|
||||
@property (nonatomic) CGFloat statusBarHeight;
|
||||
@property (nonatomic) BOOL wasNavigationBarHidden;
|
||||
|
@ -34,7 +34,7 @@
|
|||
|
||||
@end
|
||||
|
||||
@implementation StoryPageObjCDelegate
|
||||
@implementation DetailObjCViewController
|
||||
|
||||
@synthesize appDelegate;
|
||||
@synthesize currentPage, nextPage, previousPage;
|
||||
|
@ -90,9 +90,10 @@
|
|||
currentPage.appDelegate = appDelegate;
|
||||
nextPage.appDelegate = appDelegate;
|
||||
previousPage.appDelegate = appDelegate;
|
||||
currentPage.view.frame = self.scrollView.frame;
|
||||
nextPage.view.frame = self.scrollView.frame;
|
||||
previousPage.view.frame = self.scrollView.frame;
|
||||
#warning commented out since not using scroll view
|
||||
// currentPage.view.frame = self.scrollView.frame;
|
||||
// nextPage.view.frame = self.scrollView.frame;
|
||||
// previousPage.view.frame = self.scrollView.frame;
|
||||
|
||||
// NSLog(@"Scroll view content inset: %@", NSStringFromCGRect(self.scrollView.bounds));
|
||||
// NSLog(@"Scroll view frame pre: %@", NSStringFromCGRect(self.scrollView.frame));
|
|
@ -9,7 +9,7 @@
|
|||
import UIKit
|
||||
|
||||
/// Manages the detail column of the split view, with the feed detail and/or the story pages.
|
||||
class DetailViewController: BaseViewController {
|
||||
class DetailViewController: DetailObjCViewController {
|
||||
/// How the feed detail and story pages are laid out.
|
||||
enum Layout {
|
||||
/// The feed detail is to the left of the story pages (and managed by the split view, not here).
|
||||
|
@ -44,6 +44,8 @@ class DetailViewController: BaseViewController {
|
|||
updateLayout()
|
||||
|
||||
if let viewController = Storyboards.shared.controller(withIdentifier: .verticalPages) as? VerticalPageViewController {
|
||||
viewController.horizontalPageViewController = horizontalPageViewController
|
||||
|
||||
horizontalPageViewController?.setViewControllers([viewController], direction: .forward, animated: false, completion: nil)
|
||||
}
|
||||
}
|
||||
|
@ -72,6 +74,8 @@ private extension DetailViewController {
|
|||
if horizontalPageViewController == nil {
|
||||
horizontalPageViewController = Storyboards.shared.controller(withIdentifier: .horizontalPages) as? HorizontalPageViewController
|
||||
|
||||
horizontalPageViewController?.detailViewController = self
|
||||
|
||||
add(viewController: horizontalPageViewController)
|
||||
}
|
||||
}
|
||||
|
@ -82,7 +86,8 @@ private extension DetailViewController {
|
|||
}
|
||||
|
||||
addChild(viewController)
|
||||
view.addSubview(viewController.view)
|
||||
// view.addSubview(viewController.view)
|
||||
view.insertSubview(viewController.view, at: 0)
|
||||
viewController.didMove(toParent: self)
|
||||
}
|
||||
|
||||
|
|
|
@ -8,21 +8,21 @@
|
|||
|
||||
import UIKit
|
||||
|
||||
#warning("hack: this function is just for testing")
|
||||
func storyViewController() -> OriginalStoryViewController {
|
||||
let viewController = OriginalStoryViewController()
|
||||
|
||||
if let appDelegate = UIApplication.shared.delegate as? NewsBlurAppDelegate {
|
||||
let urls = ["https://dejal.com/", "https://dejus.com/", "https://yellowcottagehomestead.com/", "https://apple.com", "https://amazon.com"]
|
||||
|
||||
appDelegate.activeOriginalStoryURL = URL(string: urls.randomElement() ?? "https://dejal.com/")
|
||||
}
|
||||
|
||||
_ = viewController.view
|
||||
viewController.loadInitialStory()
|
||||
|
||||
return viewController
|
||||
}
|
||||
//#warning("hack: this function is just for testing")
|
||||
//func storyViewController() -> OriginalStoryViewController {
|
||||
// let viewController = OriginalStoryViewController()
|
||||
//
|
||||
// if let appDelegate = UIApplication.shared.delegate as? NewsBlurAppDelegate {
|
||||
// let urls = ["https://dejal.com/", "https://dejus.com/", "https://yellowcottagehomestead.com/", "https://apple.com", "https://amazon.com"]
|
||||
//
|
||||
// appDelegate.activeOriginalStoryURL = URL(string: urls.randomElement() ?? "https://dejal.com/")
|
||||
// }
|
||||
//
|
||||
// _ = viewController.view
|
||||
// viewController.loadInitialStory()
|
||||
//
|
||||
// return viewController
|
||||
//}
|
||||
|
||||
/// Delegate and data source of the story horizontal page view controller.
|
||||
class HorizontalPageDelegate: NSObject {
|
||||
|
@ -30,40 +30,41 @@ class HorizontalPageDelegate: NSObject {
|
|||
|
||||
extension HorizontalPageDelegate: UIPageViewControllerDataSource {
|
||||
func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? {
|
||||
guard let viewController = Storyboards.shared.controller(withIdentifier: .verticalPages) as? VerticalPageViewController else {
|
||||
guard let pageViewController = pageViewController as? HorizontalPageViewController, let detailViewController = pageViewController.detailViewController, let verticalViewController = Storyboards.shared.controller(withIdentifier: .verticalPages) as? VerticalPageViewController else {
|
||||
return nil
|
||||
}
|
||||
|
||||
viewController.setViewControllers([storyViewController()], direction: .reverse, animated: false, completion: nil)
|
||||
verticalViewController.setViewControllers([detailViewController.previousPage], direction: .reverse, animated: false, completion: nil)
|
||||
|
||||
//TODO: *** TO BE IMPLEMENTED *** CATALYST: set up the page controller
|
||||
|
||||
return viewController
|
||||
return verticalViewController
|
||||
}
|
||||
|
||||
func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? {
|
||||
guard let viewController = Storyboards.shared.controller(withIdentifier: .verticalPages) as? VerticalPageViewController else {
|
||||
guard let pageViewController = pageViewController as? HorizontalPageViewController, let detailViewController = pageViewController.detailViewController, let verticalViewController = Storyboards.shared.controller(withIdentifier: .verticalPages) as? VerticalPageViewController else {
|
||||
return nil
|
||||
}
|
||||
|
||||
viewController.setViewControllers([storyViewController()], direction: .forward, animated: false, completion: nil)
|
||||
verticalViewController.setViewControllers([detailViewController.nextPage], direction: .forward, animated: false, completion: nil)
|
||||
|
||||
//TODO: *** TO BE IMPLEMENTED *** CATALYST: set up the page controller
|
||||
|
||||
return viewController
|
||||
return verticalViewController
|
||||
}
|
||||
|
||||
func presentationIndex(for pageViewController: UIPageViewController) -> Int {
|
||||
//TODO: *** TO BE IMPLEMENTED *** CATALYST
|
||||
|
||||
return 1
|
||||
}
|
||||
|
||||
func presentationCount(for pageViewController: UIPageViewController) -> Int {
|
||||
//TODO: *** TO BE IMPLEMENTED *** CATALYST
|
||||
|
||||
return 10
|
||||
}
|
||||
// Don't want the page dots.
|
||||
// func presentationIndex(for pageViewController: UIPageViewController) -> Int {
|
||||
// //TODO: *** TO BE IMPLEMENTED *** CATALYST
|
||||
//
|
||||
// return 1
|
||||
// }
|
||||
//
|
||||
// func presentationCount(for pageViewController: UIPageViewController) -> Int {
|
||||
// //TODO: *** TO BE IMPLEMENTED *** CATALYST
|
||||
//
|
||||
// return 10
|
||||
// }
|
||||
}
|
||||
|
||||
extension HorizontalPageDelegate: UIPageViewControllerDelegate {
|
||||
|
|
|
@ -10,5 +10,6 @@ import UIKit
|
|||
|
||||
/// Manages horizontal story pages. An instance of this is contained within `DetailViewController`.
|
||||
class HorizontalPageViewController: UIPageViewController {
|
||||
|
||||
/// Weak reference to owning detail view controller.
|
||||
weak var detailViewController: DetailViewController?
|
||||
}
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
@property (nonatomic, strong) DashboardViewController *dashboardViewController;
|
||||
@property (nonatomic, strong) StoryDetailViewController *storyDetailViewController;
|
||||
@property (nonatomic, strong) OriginalStoryViewController *originalViewController;
|
||||
@property (nonatomic, strong) StoryPageDelegate *storyPageControl;
|
||||
@property (nonatomic, strong) DetailViewController *storyPageControl;
|
||||
@property (nonatomic, strong) ShareViewController *shareViewController;
|
||||
@property (nonatomic, strong) UIView *storyTitlesStub;
|
||||
@property (readwrite) BOOL storyTitlesOnLeft;
|
||||
|
|
|
@ -34,7 +34,6 @@
|
|||
@class FontSettingsViewController;
|
||||
@class DetailViewController;
|
||||
@class StoryDetailViewController;
|
||||
@class StoryPageDelegate;
|
||||
@class ShareViewController;
|
||||
@class LoginViewController;
|
||||
@class AddSiteViewController;
|
||||
|
@ -82,7 +81,7 @@ SFSafariViewControllerDelegate> {
|
|||
FontSettingsViewController *fontSettingsViewController;
|
||||
|
||||
StoryDetailViewController *storyDetailViewController;
|
||||
StoryPageDelegate *storyPageControl;
|
||||
DetailViewController *storyPageControl;
|
||||
ShareViewController *shareViewController;
|
||||
LoginViewController *loginViewController;
|
||||
AddSiteViewController *addSiteViewController;
|
||||
|
@ -182,7 +181,7 @@ SFSafariViewControllerDelegate> {
|
|||
@property (nonatomic) IBOutlet FriendsListViewController *friendsListViewController;
|
||||
@property (nonatomic) IBOutlet DetailViewController *detailViewController;
|
||||
@property (nonatomic) IBOutlet StoryDetailViewController *storyDetailViewController;
|
||||
@property (nonatomic) IBOutlet StoryPageDelegate *storyPageControl;
|
||||
@property (nonatomic) IBOutlet DetailViewController *storyPageControl;
|
||||
@property (nonatomic) IBOutlet LoginViewController *loginViewController;
|
||||
@property (nonatomic, strong) UINavigationController *addSiteNavigationController;
|
||||
@property (nonatomic) IBOutlet AddSiteViewController *addSiteViewController;
|
||||
|
|
|
@ -338,7 +338,7 @@
|
|||
return self.feedsViewController;
|
||||
} else if ([identifier isEqualToString:@"FeedDetailView"]) {
|
||||
return self.feedDetailViewController;
|
||||
} else if ([identifier isEqualToString:@"StoryPageDelegate"]) {
|
||||
} else if ([identifier isEqualToString:@"DetailViewController"]) {
|
||||
return self.storyPageControl;
|
||||
} else if ([identifier isEqualToString:@"ContainerView"]) {
|
||||
return self.masterContainerViewController;
|
||||
|
|
|
@ -1,14 +0,0 @@
|
|||
//
|
||||
// StoryPageDelegate.swift
|
||||
// NewsBlur
|
||||
//
|
||||
// Created by David Sinclair on 2020-08-27.
|
||||
// Copyright © 2020 NewsBlur. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
/// Delegate and data source of the story page controller.
|
||||
/// NOTE: this will be replaced by VerticalPageDelegate.
|
||||
class StoryPageDelegate: StoryPageObjCDelegate {
|
||||
}
|
|
@ -14,32 +14,33 @@ class VerticalPageDelegate: NSObject {
|
|||
|
||||
extension VerticalPageDelegate: UIPageViewControllerDataSource {
|
||||
func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? {
|
||||
let viewController = storyViewController()
|
||||
guard let pageViewController = pageViewController as? VerticalPageViewController, let detailViewController = pageViewController.detailViewController else {
|
||||
return nil
|
||||
}
|
||||
|
||||
//TODO: *** TO BE IMPLEMENTED *** CATALYST: set up the story detail
|
||||
|
||||
return viewController
|
||||
return detailViewController.previousPage
|
||||
}
|
||||
|
||||
func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? {
|
||||
let viewController = storyViewController()
|
||||
guard let pageViewController = pageViewController as? VerticalPageViewController, let detailViewController = pageViewController.detailViewController else {
|
||||
return nil
|
||||
}
|
||||
|
||||
//TODO: *** TO BE IMPLEMENTED *** CATALYST: set up the story detail
|
||||
|
||||
return viewController
|
||||
return detailViewController.nextPage
|
||||
}
|
||||
|
||||
func presentationIndex(for pageViewController: UIPageViewController) -> Int {
|
||||
//TODO: *** TO BE IMPLEMENTED *** CATALYST
|
||||
|
||||
return 1
|
||||
}
|
||||
|
||||
func presentationCount(for pageViewController: UIPageViewController) -> Int {
|
||||
//TODO: *** TO BE IMPLEMENTED *** CATALYST
|
||||
|
||||
return 10
|
||||
}
|
||||
// Don't want the page dots.
|
||||
// func presentationIndex(for pageViewController: UIPageViewController) -> Int {
|
||||
// //TODO: *** TO BE IMPLEMENTED *** CATALYST
|
||||
//
|
||||
// return 1
|
||||
// }
|
||||
//
|
||||
// func presentationCount(for pageViewController: UIPageViewController) -> Int {
|
||||
// //TODO: *** TO BE IMPLEMENTED *** CATALYST
|
||||
//
|
||||
// return 10
|
||||
// }
|
||||
}
|
||||
|
||||
extension VerticalPageDelegate: UIPageViewControllerDelegate {
|
||||
|
|
|
@ -10,5 +10,11 @@ import UIKit
|
|||
|
||||
/// Manages vertical story pages. Instances of this are contained within `HorizontalPageViewController`.
|
||||
class VerticalPageViewController: UIPageViewController {
|
||||
/// Weak reference to owning horizontal page view controller.
|
||||
weak var horizontalPageViewController: HorizontalPageViewController?
|
||||
|
||||
/// Weak computed reference to owning detail view controller.
|
||||
weak var detailViewController: DetailViewController? {
|
||||
return horizontalPageViewController?.detailViewController
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,7 +15,6 @@
|
|||
170E3CCF24F8A5D8009CE819 /* SplitViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 170E3CCE24F8A5D8009CE819 /* SplitViewController.swift */; };
|
||||
170E3CD124F8A664009CE819 /* SplitViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 170E3CD024F8A664009CE819 /* SplitViewDelegate.swift */; };
|
||||
170E3CD324F8A89B009CE819 /* HorizontalPageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 170E3CD224F8A89B009CE819 /* HorizontalPageViewController.swift */; };
|
||||
170E3CD524F8A981009CE819 /* StoryPageDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 170E3CD424F8A981009CE819 /* StoryPageDelegate.swift */; };
|
||||
170E3CD724F8AB0D009CE819 /* FeedDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 170E3CD624F8AB0D009CE819 /* FeedDetailViewController.swift */; };
|
||||
1715D02B2166B3F900227731 /* PremiumManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1715D02A2166B3F900227731 /* PremiumManager.m */; };
|
||||
1721C9D12497F91A00B0EDC4 /* mute_gray.png in Resources */ = {isa = PBXBuildFile; fileRef = 1721C9D02497F91900B0EDC4 /* mute_gray.png */; };
|
||||
|
@ -429,7 +428,7 @@
|
|||
FF688E4F16E6B3E1003B7B42 /* traverse_done@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = FF688E4D16E6B3E1003B7B42 /* traverse_done@2x.png */; };
|
||||
FF688E5216E6B8D0003B7B42 /* traverse_background.png in Resources */ = {isa = PBXBuildFile; fileRef = FF688E5016E6B8D0003B7B42 /* traverse_background.png */; };
|
||||
FF688E5316E6B8D0003B7B42 /* traverse_background@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = FF688E5116E6B8D0003B7B42 /* traverse_background@2x.png */; };
|
||||
FF6A233216448E0700E15989 /* StoryPageObjCDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = FF6A233116448E0700E15989 /* StoryPageObjCDelegate.m */; };
|
||||
FF6A233216448E0700E15989 /* DetailObjCViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = FF6A233116448E0700E15989 /* DetailObjCViewController.m */; };
|
||||
FF6A23391644957800E15989 /* StoryPageControl.xib in Resources */ = {isa = PBXBuildFile; fileRef = FF6A23361644903900E15989 /* StoryPageControl.xib */; };
|
||||
FF6DD31E1AEDF9F300F1F53A /* menu_icn_rename.png in Resources */ = {isa = PBXBuildFile; fileRef = FF6DD31C1AEDF9F300F1F53A /* menu_icn_rename.png */; };
|
||||
FF6DD31F1AEDF9F300F1F53A /* menu_icn_rename@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = FF6DD31D1AEDF9F300F1F53A /* menu_icn_rename@2x.png */; };
|
||||
|
@ -680,7 +679,6 @@
|
|||
170E3CCE24F8A5D8009CE819 /* SplitViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SplitViewController.swift; sourceTree = "<group>"; };
|
||||
170E3CD024F8A664009CE819 /* SplitViewDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SplitViewDelegate.swift; sourceTree = "<group>"; };
|
||||
170E3CD224F8A89B009CE819 /* HorizontalPageViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HorizontalPageViewController.swift; sourceTree = "<group>"; };
|
||||
170E3CD424F8A981009CE819 /* StoryPageDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StoryPageDelegate.swift; sourceTree = "<group>"; };
|
||||
170E3CD624F8AB0D009CE819 /* FeedDetailViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedDetailViewController.swift; sourceTree = "<group>"; };
|
||||
1715D0292166B3F900227731 /* PremiumManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PremiumManager.h; sourceTree = "<group>"; };
|
||||
1715D02A2166B3F900227731 /* PremiumManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PremiumManager.m; sourceTree = "<group>"; };
|
||||
|
@ -1233,8 +1231,8 @@
|
|||
FF688E4D16E6B3E1003B7B42 /* traverse_done@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "traverse_done@2x.png"; sourceTree = "<group>"; };
|
||||
FF688E5016E6B8D0003B7B42 /* traverse_background.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = traverse_background.png; sourceTree = "<group>"; };
|
||||
FF688E5116E6B8D0003B7B42 /* traverse_background@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "traverse_background@2x.png"; sourceTree = "<group>"; };
|
||||
FF6A233016448E0700E15989 /* StoryPageObjCDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StoryPageObjCDelegate.h; sourceTree = "<group>"; };
|
||||
FF6A233116448E0700E15989 /* StoryPageObjCDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StoryPageObjCDelegate.m; sourceTree = "<group>"; };
|
||||
FF6A233016448E0700E15989 /* DetailObjCViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DetailObjCViewController.h; sourceTree = "<group>"; };
|
||||
FF6A233116448E0700E15989 /* DetailObjCViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DetailObjCViewController.m; sourceTree = "<group>"; };
|
||||
FF6A23361644903900E15989 /* StoryPageControl.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = StoryPageControl.xib; path = ../Classes/StoryPageControl.xib; sourceTree = "<group>"; };
|
||||
FF6DD31C1AEDF9F300F1F53A /* menu_icn_rename.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_icn_rename.png; sourceTree = "<group>"; };
|
||||
FF6DD31D1AEDF9F300F1F53A /* menu_icn_rename@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "menu_icn_rename@2x.png"; sourceTree = "<group>"; };
|
||||
|
@ -1896,13 +1894,13 @@
|
|||
431B857415A1324200DCE497 /* Story */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
176A5C7924F8BD1B009E8DF9 /* DetailViewController.swift */,
|
||||
FF6A233016448E0700E15989 /* DetailObjCViewController.h */,
|
||||
FF6A233116448E0700E15989 /* DetailObjCViewController.m */,
|
||||
170E3CD224F8A89B009CE819 /* HorizontalPageViewController.swift */,
|
||||
172AD263251D901D000BB264 /* HorizontalPageDelegate.swift */,
|
||||
172AD25D251D9011000BB264 /* VerticalPageViewController.swift */,
|
||||
172AD269251D9028000BB264 /* VerticalPageDelegate.swift */,
|
||||
170E3CD424F8A981009CE819 /* StoryPageDelegate.swift */,
|
||||
FF6A233016448E0700E15989 /* StoryPageObjCDelegate.h */,
|
||||
FF6A233116448E0700E15989 /* StoryPageObjCDelegate.m */,
|
||||
1787082F24F8B3A50000C82B /* StoryDetailViewController.swift */,
|
||||
7842ECF511D44A530066CF9D /* StoryDetailObjCViewController.h */,
|
||||
7842ECF611D44A530066CF9D /* StoryDetailObjCViewController.m */,
|
||||
|
@ -2384,7 +2382,6 @@
|
|||
172AD273251D9F40000BB264 /* Storyboards.swift */,
|
||||
170E3CCE24F8A5D8009CE819 /* SplitViewController.swift */,
|
||||
170E3CD024F8A664009CE819 /* SplitViewDelegate.swift */,
|
||||
176A5C7924F8BD1B009E8DF9 /* DetailViewController.swift */,
|
||||
436ACA8B15BF1088004E01CC /* NBContainerViewController.h */,
|
||||
436ACA8C15BF1088004E01CC /* NBContainerViewController.m */,
|
||||
17432C7D1C533FBC003F8FD6 /* MenuViewController.h */,
|
||||
|
@ -3507,7 +3504,6 @@
|
|||
FFDE35CC161B8F870034BFDE /* FolderTitleView.m in Sources */,
|
||||
172AD264251D901D000BB264 /* HorizontalPageDelegate.swift in Sources */,
|
||||
E1C44B0B200147ED002128AD /* StoryTitleAttributedString.m in Sources */,
|
||||
170E3CD524F8A981009CE819 /* StoryPageDelegate.swift in Sources */,
|
||||
FFDE35DA161D12250034BFDE /* UnreadCountView.m in Sources */,
|
||||
FF34FD621E9D93CB0062F8ED /* IASKMultipleValueSelection.m in Sources */,
|
||||
FF4130A3162E10CF00DDB6A7 /* MenuTableViewCell.m in Sources */,
|
||||
|
@ -3515,7 +3511,7 @@
|
|||
17432C7F1C533FBC003F8FD6 /* MenuViewController.m in Sources */,
|
||||
FFF8B3AF1F847505001AB95E /* NBDashboardNavigationBar.m in Sources */,
|
||||
17E635AF1C548C580075338E /* FeedChooserItem.m in Sources */,
|
||||
FF6A233216448E0700E15989 /* StoryPageObjCDelegate.m in Sources */,
|
||||
FF6A233216448E0700E15989 /* DetailObjCViewController.m in Sources */,
|
||||
FF67D3B2168924C40057A7DA /* TrainerViewController.m in Sources */,
|
||||
FF1660CD16D6FD8A00AF8541 /* SmallInteractionCell.m in Sources */,
|
||||
FF34FD6E1E9D93CB0062F8ED /* IASKTextField.m in Sources */,
|
||||
|
|
|
@ -12,6 +12,6 @@
|
|||
|
||||
#import "FeedsObjCViewController.h"
|
||||
#import "FeedDetailObjCViewController.h"
|
||||
#import "StoryPageObjCDelegate.h"
|
||||
#import "DetailObjCViewController.h"
|
||||
#import "StoryDetailObjCViewController.h"
|
||||
#import "OriginalStoryViewController.h"
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="17154" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none" useAutolayout="YES" colorMatched="YES">
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="17503.1" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none" useAutolayout="YES" colorMatched="YES">
|
||||
<device id="ipad9_7" orientation="portrait" layout="fullscreen" appearance="light"/>
|
||||
<dependencies>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17124"/>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17502"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
|
@ -32,7 +34,6 @@
|
|||
<outlet property="premiumViewController" destination="Nno-Ma-6TQ" id="0Ex-VU-Hek"/>
|
||||
<outlet property="shareViewController" destination="168" id="272"/>
|
||||
<outlet property="storyDetailViewController" destination="92" id="93"/>
|
||||
<outlet property="storyPageControl" destination="290" id="292"/>
|
||||
<outlet property="trainerViewController" destination="287" id="289"/>
|
||||
<outlet property="userProfileViewController" destination="235" id="236"/>
|
||||
<outlet property="userTagsViewController" destination="v2Q-Hh-f3K" id="5CE-5l-aoS"/>
|
||||
|
@ -153,13 +154,6 @@
|
|||
<outlet property="appDelegate" destination="3" id="271"/>
|
||||
</connections>
|
||||
</viewController>
|
||||
<viewController restorationIdentifier="StoryPageControl" id="290" customClass="StoryPageDelegate">
|
||||
<extendedEdge key="edgesForExtendedLayout"/>
|
||||
<simulatedStatusBarMetrics key="simulatedStatusBarMetrics" statusBarStyle="blackOpaque"/>
|
||||
<connections>
|
||||
<outlet property="appDelegate" destination="3" id="291"/>
|
||||
</connections>
|
||||
</viewController>
|
||||
<viewController restorationIdentifier="StoryDetailView" nibName="StoryDetailViewController" id="92" customClass="StoryDetailViewController">
|
||||
<extendedEdge key="edgesForExtendedLayout"/>
|
||||
<simulatedStatusBarMetrics key="simulatedStatusBarMetrics" statusBarStyle="blackOpaque"/>
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="17154" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" colorMatched="YES">
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="17503.1" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" colorMatched="YES">
|
||||
<device id="retina6_1" orientation="portrait" appearance="light"/>
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17124"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17502"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
|
@ -33,7 +33,6 @@
|
|||
<outlet property="premiumViewController" destination="GXC-Ze-HBm" id="wZ1-Qy-e0X"/>
|
||||
<outlet property="shareViewController" destination="131" id="132"/>
|
||||
<outlet property="storyDetailViewController" destination="92" id="173"/>
|
||||
<outlet property="storyPageControl" destination="170" id="172"/>
|
||||
<outlet property="trainerViewController" destination="174" id="176"/>
|
||||
<outlet property="userProfileViewController" destination="141" id="142"/>
|
||||
<outlet property="window" destination="12" id="78"/>
|
||||
|
@ -68,14 +67,6 @@
|
|||
</connections>
|
||||
<point key="canvasLocation" x="-677" y="-1136"/>
|
||||
</viewController>
|
||||
<viewController restorationIdentifier="StoryPageControl" nibName="StoryPageControl" automaticallyAdjustsScrollViewInsets="NO" id="170" customClass="StoryPageDelegate">
|
||||
<extendedEdge key="edgesForExtendedLayout"/>
|
||||
<simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/>
|
||||
<connections>
|
||||
<outlet property="appDelegate" destination="3" id="171"/>
|
||||
</connections>
|
||||
<point key="canvasLocation" x="-1564" y="-1165"/>
|
||||
</viewController>
|
||||
<viewController nibName="LoginViewController" id="102" userLabel="Login View Controller" customClass="LoginViewController">
|
||||
<extendedEdge key="edgesForExtendedLayout"/>
|
||||
<simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/>
|
||||
|
|
|
@ -14,27 +14,333 @@
|
|||
<objects>
|
||||
<viewController storyboardIdentifier="DetailViewController" useStoryboardIdentifierAsRestorationIdentifier="YES" id="djW-7k-haK" customClass="DetailViewController" customModule="NewsBlur" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="scaleToFill" id="jTZ-4O-xyT">
|
||||
<rect key="frame" x="0.0" y="0.0" width="818.5" height="834"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="818" height="834"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="center" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Us5-JA-7Ct">
|
||||
<rect key="frame" x="305.5" y="401.5" width="208" height="61"/>
|
||||
<string key="text">This will be the stories view
|
||||
|
||||
Coming soon!</string>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<nil key="textColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4vK-W4-ayS">
|
||||
<rect key="frame" x="0.0" y="583" width="818.5" height="51"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="traverse_background.png" translatesAutoresizingMaskIntoConstraints="NO" id="PLd-RZ-773">
|
||||
<rect key="frame" x="652.5" y="4" width="160" height="44"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="160" id="SOi-6Y-1cH"/>
|
||||
<constraint firstAttribute="height" constant="44" id="yra-hO-9Gh"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="traverse_background.png" translatesAutoresizingMaskIntoConstraints="NO" id="zfl-mN-y0T">
|
||||
<rect key="frame" x="4" y="4" width="143" height="44"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="143" id="v9X-2X-Bgb"/>
|
||||
<constraint firstAttribute="height" constant="44" id="vg2-XI-Vnl"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="oct-Cn-9L0">
|
||||
<rect key="frame" x="658.5" y="9" width="43" height="34"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="34" id="8OI-gJ-c5x"/>
|
||||
<constraint firstAttribute="width" constant="43" id="kNF-2d-gY1"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="13"/>
|
||||
<inset key="contentEdgeInsets" minX="0.0" minY="0.0" maxX="20" maxY="0.0"/>
|
||||
<state key="normal" backgroundImage="traverse_previous.png">
|
||||
<color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<state key="disabled" backgroundImage="traverse_previous_off.png"/>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="doPreviousStory:" destination="djW-7k-haK" eventType="touchUpInside" id="pgb-NN-Zmi"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ZoU-af-wjh">
|
||||
<rect key="frame" x="702.5" y="9" width="104" height="34"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="104" id="Esh-zh-12I"/>
|
||||
<constraint firstAttribute="height" constant="34" id="LWH-y8-6oO"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="13"/>
|
||||
<inset key="titleEdgeInsets" minX="2" minY="0.0" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="NEXT" backgroundImage="traverse_next.png">
|
||||
<color key="titleColor" red="0.51764705879999995" green="0.52549019610000003" blue="0.50196078430000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<color key="titleShadowColor" red="0.49803921569999998" green="0.49803921569999998" blue="0.49803921569999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<state key="selected">
|
||||
<color key="titleColor" red="0.1969947517" green="0.1969947517" blue="0.1969947517" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" red="0.33333334329999997" green="0.33333334329999997" blue="0.33333334329999997" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="doNextUnreadStory:" destination="djW-7k-haK" eventType="touchUpInside" id="7Ye-5J-1dI"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Mhr-a8-MQd">
|
||||
<rect key="frame" x="9" y="9" width="87" height="34"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="34" id="8lr-m8-D43"/>
|
||||
<constraint firstAttribute="width" constant="87" id="fH9-Ji-sL9"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="13"/>
|
||||
<inset key="titleEdgeInsets" minX="16" minY="0.0" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="TEXT" backgroundImage="traverse_text.png">
|
||||
<color key="titleColor" red="0.51726847890000005" green="0.52641934160000003" blue="0.5003217459" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<state key="selected">
|
||||
<color key="titleColor" red="0.1969947517" green="0.1969947517" blue="0.1969947517" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" red="0.33333334329999997" green="0.33333334329999997" blue="0.33333334329999997" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="toggleTextView:" destination="djW-7k-haK" eventType="touchUpInside" id="BcX-EA-coX"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Teu-p1-Gy0">
|
||||
<rect key="frame" x="97" y="9" width="44" height="34"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="44" id="GHI-MI-CDD"/>
|
||||
<constraint firstAttribute="height" constant="34" id="UIz-s9-jVY"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="13"/>
|
||||
<inset key="contentEdgeInsets" minX="0.0" minY="0.0" maxX="20" maxY="0.0"/>
|
||||
<state key="normal" backgroundImage="traverse_send.png">
|
||||
<color key="titleColor" red="0.51726847890000005" green="0.52641934160000003" blue="0.5003217459" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<state key="selected">
|
||||
<color key="titleColor" red="0.1969947517" green="0.1969947517" blue="0.1969947517" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" red="0.33333334329999997" green="0.33333334329999997" blue="0.33333334329999997" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="openSendToDialog:" destination="djW-7k-haK" eventType="touchUpInside" id="9U3-UM-kcf"/>
|
||||
</connections>
|
||||
</button>
|
||||
<activityIndicatorView opaque="NO" contentMode="scaleToFill" hidesWhenStopped="YES" animating="YES" style="gray" translatesAutoresizingMaskIntoConstraints="NO" id="wpt-1g-x7w">
|
||||
<rect key="frame" x="708.5" y="16" width="20" height="20"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="20" id="GBn-Oz-urx"/>
|
||||
<constraint firstAttribute="height" constant="20" id="wo2-Qz-ku4"/>
|
||||
</constraints>
|
||||
<color key="color" red="0.5383990407" green="0.54777079819999996" blue="0.51707810160000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</activityIndicatorView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="bottom" secondItem="wpt-1g-x7w" secondAttribute="bottom" constant="15" id="03o-Tx-Ngx"/>
|
||||
<constraint firstAttribute="trailing" secondItem="ZoU-af-wjh" secondAttribute="trailing" constant="12" id="9oi-95-ua5"/>
|
||||
<constraint firstAttribute="bottom" secondItem="Teu-p1-Gy0" secondAttribute="bottom" constant="8" id="DhJ-Vd-Zos"/>
|
||||
<constraint firstAttribute="bottom" secondItem="ZoU-af-wjh" secondAttribute="bottom" constant="8" id="F4M-Gs-4Q8"/>
|
||||
<constraint firstAttribute="trailing" secondItem="PLd-RZ-773" secondAttribute="trailing" constant="6" id="KIb-u5-yKl"/>
|
||||
<constraint firstItem="Mhr-a8-MQd" firstAttribute="top" secondItem="4vK-W4-ayS" secondAttribute="top" constant="9" id="Lm9-bw-Gae"/>
|
||||
<constraint firstItem="wpt-1g-x7w" firstAttribute="top" secondItem="4vK-W4-ayS" secondAttribute="top" constant="16" id="Onq-vt-9IB"/>
|
||||
<constraint firstItem="oct-Cn-9L0" firstAttribute="top" secondItem="4vK-W4-ayS" secondAttribute="top" constant="9" id="Sb8-ah-WTX"/>
|
||||
<constraint firstAttribute="bottom" secondItem="PLd-RZ-773" secondAttribute="bottom" constant="3" id="XVE-t8-vex"/>
|
||||
<constraint firstItem="Mhr-a8-MQd" firstAttribute="leading" secondItem="4vK-W4-ayS" secondAttribute="leading" constant="9" id="cUF-Cc-QxF"/>
|
||||
<constraint firstAttribute="height" constant="51" id="eDx-IM-t3r"/>
|
||||
<constraint firstAttribute="bottom" secondItem="Mhr-a8-MQd" secondAttribute="bottom" constant="8" id="elN-qs-zPt"/>
|
||||
<constraint firstItem="Teu-p1-Gy0" firstAttribute="leading" secondItem="Mhr-a8-MQd" secondAttribute="trailing" constant="1" id="fVb-wU-tzk"/>
|
||||
<constraint firstItem="ZoU-af-wjh" firstAttribute="top" secondItem="4vK-W4-ayS" secondAttribute="top" constant="9" id="fng-rP-yJD"/>
|
||||
<constraint firstItem="ZoU-af-wjh" firstAttribute="leading" secondItem="oct-Cn-9L0" secondAttribute="trailing" constant="1" id="g6D-iX-NZ0"/>
|
||||
<constraint firstAttribute="bottom" secondItem="oct-Cn-9L0" secondAttribute="bottom" constant="8" id="iUr-Cf-Q16"/>
|
||||
<constraint firstItem="PLd-RZ-773" firstAttribute="top" secondItem="4vK-W4-ayS" secondAttribute="top" constant="4" id="kPd-Dz-5Mp"/>
|
||||
<constraint firstItem="zfl-mN-y0T" firstAttribute="leading" secondItem="4vK-W4-ayS" secondAttribute="leading" constant="4" id="p37-nQ-da5"/>
|
||||
<constraint firstItem="wpt-1g-x7w" firstAttribute="leading" secondItem="oct-Cn-9L0" secondAttribute="trailing" constant="7" id="pie-9C-6lc"/>
|
||||
<constraint firstItem="Teu-p1-Gy0" firstAttribute="top" secondItem="4vK-W4-ayS" secondAttribute="top" constant="9" id="r6J-NM-Wih"/>
|
||||
<constraint firstItem="ZoU-af-wjh" firstAttribute="leading" secondItem="oct-Cn-9L0" secondAttribute="trailing" constant="1" id="sAq-ce-nf3"/>
|
||||
<constraint firstItem="zfl-mN-y0T" firstAttribute="top" secondItem="4vK-W4-ayS" secondAttribute="top" constant="4" id="u2K-Za-5uE"/>
|
||||
<constraint firstItem="Teu-p1-Gy0" firstAttribute="leading" secondItem="Mhr-a8-MQd" secondAttribute="trailing" constant="1" id="vqy-97-fJY"/>
|
||||
<constraint firstAttribute="bottom" secondItem="zfl-mN-y0T" secondAttribute="bottom" constant="3" id="zAW-8Q-Srb"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="hfm-Pf-oeW">
|
||||
<rect key="frame" x="329.5" y="512" width="160" height="44"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="traverse_background.png" translatesAutoresizingMaskIntoConstraints="NO" id="DhZ-K9-Ohx">
|
||||
<rect key="frame" x="0.0" y="0.0" width="160" height="44"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="160" id="pgM-aj-MFu"/>
|
||||
<constraint firstAttribute="height" constant="44" id="whT-PJ-xOd"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Xtc-sh-knL">
|
||||
<rect key="frame" x="6" y="5" width="36" height="34"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="34" id="2pi-Ji-rYh"/>
|
||||
<constraint firstAttribute="width" constant="36" id="GUg-uM-GcI"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="13"/>
|
||||
<inset key="contentEdgeInsets" minX="0.0" minY="0.0" maxX="20" maxY="0.0"/>
|
||||
<state key="normal" backgroundImage="autoscroll_off.png">
|
||||
<color key="titleColor" red="0.51764705879999995" green="0.52549019610000003" blue="0.50196078430000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<state key="disabled" backgroundImage="traverse_previous_off.png"/>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="autoscrollDisable:" destination="djW-7k-haK" eventType="touchUpInside" id="xy6-pJ-Zar"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="WoA-Tv-FTT">
|
||||
<rect key="frame" x="43" y="5" width="36" height="34"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="36" id="DLV-4U-iIU"/>
|
||||
<constraint firstAttribute="height" constant="34" id="hGu-E7-dg7"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="13"/>
|
||||
<inset key="contentEdgeInsets" minX="0.0" minY="0.0" maxX="20" maxY="0.0"/>
|
||||
<state key="normal" backgroundImage="autoscroll_resume.png">
|
||||
<color key="titleColor" red="0.51764705879999995" green="0.52549019610000003" blue="0.50196078430000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<state key="disabled" backgroundImage="traverse_previous_off.png"/>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="autoscrollPauseResume:" destination="djW-7k-haK" eventType="touchUpInside" id="nkL-6Z-mrc"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="x4P-S0-dR7">
|
||||
<rect key="frame" x="80" y="5" width="36" height="34"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="36" id="kGz-Tf-Nfz"/>
|
||||
<constraint firstAttribute="height" constant="34" id="wsh-s4-baM"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="13"/>
|
||||
<inset key="contentEdgeInsets" minX="0.0" minY="0.0" maxX="20" maxY="0.0"/>
|
||||
<state key="normal" backgroundImage="autoscroll_slower.png">
|
||||
<color key="titleColor" red="0.51764705879999995" green="0.52549019610000003" blue="0.50196078430000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<state key="disabled" backgroundImage="traverse_previous_off.png"/>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="autoscrollSlower:" destination="djW-7k-haK" eventType="touchUpInside" id="JIU-Gg-Lt9"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="xZB-Qu-u2n">
|
||||
<rect key="frame" x="117" y="5" width="37" height="34"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="37" id="Uc8-iE-dwS"/>
|
||||
<constraint firstAttribute="height" constant="34" id="eBL-Sp-Fbq"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="13"/>
|
||||
<inset key="contentEdgeInsets" minX="0.0" minY="0.0" maxX="20" maxY="0.0"/>
|
||||
<state key="normal" backgroundImage="autoscroll_faster.png">
|
||||
<color key="titleColor" red="0.51764705879999995" green="0.52549019610000003" blue="0.50196078430000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<state key="disabled" backgroundImage="traverse_previous_off.png"/>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="autoscrollFaster:" destination="djW-7k-haK" eventType="touchUpInside" id="8aA-ma-ybu"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="160" id="8JN-0x-Wxg"/>
|
||||
<constraint firstItem="x4P-S0-dR7" firstAttribute="leading" secondItem="WoA-Tv-FTT" secondAttribute="trailing" constant="1" id="9d0-El-qfS"/>
|
||||
<constraint firstItem="xZB-Qu-u2n" firstAttribute="centerY" secondItem="hfm-Pf-oeW" secondAttribute="centerY" id="Fum-wZ-lMO"/>
|
||||
<constraint firstItem="Xtc-sh-knL" firstAttribute="leading" secondItem="DhZ-K9-Ohx" secondAttribute="leading" constant="6" id="LGD-tR-0md"/>
|
||||
<constraint firstAttribute="height" constant="44" id="McX-ZT-Oa5"/>
|
||||
<constraint firstItem="xZB-Qu-u2n" firstAttribute="leading" secondItem="x4P-S0-dR7" secondAttribute="trailing" constant="1" id="S9q-9z-hqL"/>
|
||||
<constraint firstItem="WoA-Tv-FTT" firstAttribute="centerY" secondItem="hfm-Pf-oeW" secondAttribute="centerY" id="Uxl-g3-HeW"/>
|
||||
<constraint firstItem="WoA-Tv-FTT" firstAttribute="leading" secondItem="Xtc-sh-knL" secondAttribute="trailing" constant="1" id="b8m-Mq-cvm"/>
|
||||
<constraint firstItem="DhZ-K9-Ohx" firstAttribute="centerY" secondItem="hfm-Pf-oeW" secondAttribute="centerY" id="mrl-fB-AqE"/>
|
||||
<constraint firstItem="DhZ-K9-Ohx" firstAttribute="centerX" secondItem="hfm-Pf-oeW" secondAttribute="centerX" id="nU9-HN-T6z"/>
|
||||
<constraint firstItem="x4P-S0-dR7" firstAttribute="centerY" secondItem="hfm-Pf-oeW" secondAttribute="centerY" id="ngp-qt-zlU"/>
|
||||
<constraint firstItem="Xtc-sh-knL" firstAttribute="centerY" secondItem="hfm-Pf-oeW" secondAttribute="centerY" id="yw5-gp-mD8"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="tFd-Uv-aMP">
|
||||
<rect key="frame" x="0.0" y="634" width="818.5" height="12"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="qGY-je-8bb">
|
||||
<rect key="frame" x="0.0" y="-1" width="818.5" height="1"/>
|
||||
<color key="backgroundColor" red="0.75644385810000003" green="0.75644385810000003" blue="0.75644385810000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="1" id="rXL-Rl-xkq"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="bSN-6S-SA0">
|
||||
<rect key="frame" x="0.0" y="12" width="818.5" height="1"/>
|
||||
<color key="backgroundColor" red="0.75644385810000003" green="0.75644385810000003" blue="0.75644385810000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="1" id="tto-L2-TaQ"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="drag_icon.png" translatesAutoresizingMaskIntoConstraints="NO" id="xeQ-Iz-FR0">
|
||||
<rect key="frame" x="392.5" y="2" width="34" height="9"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="9" id="dFD-2h-iag"/>
|
||||
<constraint firstAttribute="width" constant="34" id="wAd-rJ-dVL"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" red="0.88797336819999995" green="0.89844107630000003" blue="0.86854457860000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<constraints>
|
||||
<constraint firstItem="xeQ-Iz-FR0" firstAttribute="centerX" secondItem="tFd-Uv-aMP" secondAttribute="centerX" id="3tS-En-fH4"/>
|
||||
<constraint firstAttribute="trailing" secondItem="qGY-je-8bb" secondAttribute="trailing" id="AOi-Da-ns0"/>
|
||||
<constraint firstAttribute="height" constant="12" id="Laq-ik-g8M"/>
|
||||
<constraint firstAttribute="bottom" secondItem="bSN-6S-SA0" secondAttribute="bottom" constant="-1" id="SMi-yf-Pon"/>
|
||||
<constraint firstItem="xeQ-Iz-FR0" firstAttribute="top" secondItem="qGY-je-8bb" secondAttribute="bottom" constant="2" id="SOj-Op-4hQ"/>
|
||||
<constraint firstItem="xeQ-Iz-FR0" firstAttribute="leading" secondItem="tFd-Uv-aMP" secondAttribute="leading" id="WIp-Ao-Khg"/>
|
||||
<constraint firstItem="qGY-je-8bb" firstAttribute="top" secondItem="tFd-Uv-aMP" secondAttribute="top" constant="-1" id="Zef-QC-am2"/>
|
||||
<constraint firstAttribute="trailing" secondItem="bSN-6S-SA0" secondAttribute="trailing" id="cLg-BL-SJm"/>
|
||||
<constraint firstAttribute="trailing" secondItem="xeQ-Iz-FR0" secondAttribute="trailing" id="fbc-Ms-uFK"/>
|
||||
<constraint firstItem="qGY-je-8bb" firstAttribute="leading" secondItem="tFd-Uv-aMP" secondAttribute="leading" id="z3d-ao-3Le"/>
|
||||
<constraint firstItem="bSN-6S-SA0" firstAttribute="leading" secondItem="tFd-Uv-aMP" secondAttribute="leading" id="ztL-pU-MBH"/>
|
||||
</constraints>
|
||||
<variation key="default">
|
||||
<mask key="constraints">
|
||||
<exclude reference="WIp-Ao-Khg"/>
|
||||
<exclude reference="fbc-Ms-uFK"/>
|
||||
</mask>
|
||||
</variation>
|
||||
</view>
|
||||
</subviews>
|
||||
<viewLayoutGuide key="safeArea" id="a0o-Zh-Wop"/>
|
||||
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
|
||||
<constraints>
|
||||
<constraint firstItem="Us5-JA-7Ct" firstAttribute="centerY" secondItem="a0o-Zh-Wop" secondAttribute="centerY" id="Qjc-di-UOY"/>
|
||||
<constraint firstItem="Us5-JA-7Ct" firstAttribute="centerX" secondItem="a0o-Zh-Wop" secondAttribute="centerX" id="hnf-cE-mPJ"/>
|
||||
<constraint firstItem="4vK-W4-ayS" firstAttribute="leading" secondItem="a0o-Zh-Wop" secondAttribute="leading" id="AFV-14-jnc"/>
|
||||
<constraint firstItem="hfm-Pf-oeW" firstAttribute="centerX" secondItem="a0o-Zh-Wop" secondAttribute="centerX" id="Grz-1P-qjc"/>
|
||||
<constraint firstItem="a0o-Zh-Wop" firstAttribute="trailing" secondItem="4vK-W4-ayS" secondAttribute="trailing" id="JVw-MX-f4R"/>
|
||||
<constraint firstItem="tFd-Uv-aMP" firstAttribute="top" secondItem="4vK-W4-ayS" secondAttribute="bottom" id="YVh-UJ-d3j"/>
|
||||
<constraint firstItem="a0o-Zh-Wop" firstAttribute="bottom" secondItem="tFd-Uv-aMP" secondAttribute="bottom" constant="168" id="c9d-f5-wud"/>
|
||||
<constraint firstItem="a0o-Zh-Wop" firstAttribute="trailing" secondItem="tFd-Uv-aMP" secondAttribute="trailing" id="h2I-ng-gxc"/>
|
||||
<constraint firstItem="tFd-Uv-aMP" firstAttribute="top" secondItem="hfm-Pf-oeW" secondAttribute="bottom" constant="78" id="phm-3P-lxo"/>
|
||||
<constraint firstItem="tFd-Uv-aMP" firstAttribute="leading" secondItem="a0o-Zh-Wop" secondAttribute="leading" id="wzt-O8-Ild"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<navigationItem key="navigationItem" id="OyA-BF-OGR"/>
|
||||
<connections>
|
||||
<outlet property="autoscrollBackgroundImageView" destination="DhZ-K9-Ohx" id="JlX-4q-aYI"/>
|
||||
<outlet property="autoscrollBottomConstraint" destination="phm-3P-lxo" id="7kF-8R-ggC"/>
|
||||
<outlet property="autoscrollDisableButton" destination="Xtc-sh-knL" id="HH8-tu-4lg"/>
|
||||
<outlet property="autoscrollFasterButton" destination="xZB-Qu-u2n" id="ora-na-Jht"/>
|
||||
<outlet property="autoscrollPauseResumeButton" destination="WoA-Tv-FTT" id="G89-JX-DAM"/>
|
||||
<outlet property="autoscrollSlowerButton" destination="x4P-S0-dR7" id="5r5-Ix-oSv"/>
|
||||
<outlet property="autoscrollView" destination="hfm-Pf-oeW" id="uLO-sQ-E0v"/>
|
||||
<outlet property="bottomSize" destination="tFd-Uv-aMP" id="d0U-lI-Ukb"/>
|
||||
<outlet property="bottomSizeHeightConstraint" destination="c9d-f5-wud" id="0kK-IS-Yql"/>
|
||||
<outlet property="buttonNext" destination="ZoU-af-wjh" id="Bg3-Bc-32l"/>
|
||||
<outlet property="buttonPrevious" destination="oct-Cn-9L0" id="GQY-2J-pfy"/>
|
||||
<outlet property="buttonSend" destination="Teu-p1-Gy0" id="cLM-Zi-gs0"/>
|
||||
<outlet property="buttonText" destination="Mhr-a8-MQd" id="bXI-fg-Y5m"/>
|
||||
<outlet property="dragBarImageView" destination="xeQ-Iz-FR0" id="JfY-AN-erg"/>
|
||||
<outlet property="loadingIndicator" destination="wpt-1g-x7w" id="6Re-nf-bHo"/>
|
||||
<outlet property="prevNextBackgroundImageView" destination="PLd-RZ-773" id="adi-Gt-uX1"/>
|
||||
<outlet property="textStorySendBackgroundImageView" destination="zfl-mN-y0T" id="lD1-7s-izZ"/>
|
||||
<outlet property="traverseBottomConstraint" destination="YVh-UJ-d3j" id="gGi-RC-s2Z"/>
|
||||
<outlet property="traverseView" destination="4vK-W4-ayS" id="yvU-Yp-1YP"/>
|
||||
</connections>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="AQD-wG-11i" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
|
@ -337,9 +643,20 @@ Coming soon!</string>
|
|||
</scenes>
|
||||
<resources>
|
||||
<image name="all.png" width="19.5" height="12.5"/>
|
||||
<image name="autoscroll_faster.png" width="37" height="34"/>
|
||||
<image name="autoscroll_off.png" width="36" height="34"/>
|
||||
<image name="autoscroll_resume.png" width="36" height="34"/>
|
||||
<image name="autoscroll_slower.png" width="36" height="34"/>
|
||||
<image name="big_world.png" width="30.719999313354492" height="30.719999313354492"/>
|
||||
<image name="drag_icon.png" width="96" height="24"/>
|
||||
<image name="nav_icn_add.png" width="49.454544067382812" height="64"/>
|
||||
<image name="nav_icn_settings.png" width="15.359999656677246" height="12.239999771118164"/>
|
||||
<image name="traverse_background.png" width="113" height="46"/>
|
||||
<image name="traverse_next.png" width="104" height="34"/>
|
||||
<image name="traverse_previous.png" width="43" height="34"/>
|
||||
<image name="traverse_previous_off.png" width="43" height="34"/>
|
||||
<image name="traverse_send.png" width="44" height="34"/>
|
||||
<image name="traverse_text.png" width="94" height="34"/>
|
||||
<image name="unread_blue.png" width="49.5" height="12.5"/>
|
||||
<image name="unread_green.png" width="49" height="12.5"/>
|
||||
<image name="unread_yellow.png" width="58" height="12.5"/>
|
||||
|
|
Loading…
Add table
Reference in a new issue