Full Code of JunichiT/JTFadingInfoView for AI

master a7544c6dddd0 cached
45 files
134.4 KB
38.6k tokens
6 symbols
1 requests
Download .txt
Repository: JunichiT/JTFadingInfoView
Branch: master
Commit: a7544c6dddd0
Files: 45
Total size: 134.4 KB

Directory structure:
gitextract_gdlg0pfg/

├── .idea/
│   ├── .name
│   ├── JTFadingInfoViewController.iml
│   ├── codeStyleSettings.xml
│   ├── encodings.xml
│   ├── misc.xml
│   ├── modules.xml
│   ├── scopes/
│   │   └── scope_settings.xml
│   ├── vcs.xml
│   ├── workspace.xml
│   └── xcode.xml
├── Example/
│   ├── JTFadingInfoView/
│   │   ├── AppDelegate.h
│   │   ├── AppDelegate.m
│   │   ├── Base.lproj/
│   │   │   └── LaunchScreen.xib
│   │   ├── Class/
│   │   │   ├── JTFadingInfoView.h
│   │   │   └── JTFadingInfoView.m
│   │   ├── Images.xcassets/
│   │   │   ├── AppIcon.appiconset/
│   │   │   │   └── Contents.json
│   │   │   ├── LaunchImage.launchimage/
│   │   │   │   └── Contents.json
│   │   │   ├── cyan-pentagonal-background.imageset/
│   │   │   │   └── Contents.json
│   │   │   └── icon.imageset/
│   │   │       └── Contents.json
│   │   ├── Info.plist
│   │   ├── LogInViewController.h
│   │   ├── LogInViewController.m
│   │   ├── LogInViewController.xib
│   │   ├── PropertyViewController.h
│   │   ├── PropertyViewController.m
│   │   ├── PropertyViewController.xib
│   │   ├── RootViewController.h
│   │   ├── RootViewController.m
│   │   └── main.m
│   ├── JTFadingInfoView.xcodeproj/
│   │   ├── project.pbxproj
│   │   ├── project.xcworkspace/
│   │   │   ├── contents.xcworkspacedata
│   │   │   ├── xcshareddata/
│   │   │   │   └── JTFadingInfoView.xccheckout
│   │   │   └── xcuserdata/
│   │   │       └── DCL_JT.xcuserdatad/
│   │   │           └── WorkspaceSettings.xcsettings
│   │   └── xcuserdata/
│   │       └── DCL_JT.xcuserdatad/
│   │           ├── xcdebugger/
│   │           │   └── Breakpoints_v2.xcbkptlist
│   │           └── xcschemes/
│   │               ├── JTFadingInfoViewController.xcscheme
│   │               └── xcschememanagement.plist
│   └── JTFadingInfoViewTests/
│       ├── Info.plist
│       └── JTFadingInfoViewTests.m
├── JTFadingInfoView.podspec
├── LICENSE
├── Pod/
│   ├── Assets/
│   │   └── .gitkeep
│   └── Classes/
│       ├── .gitkeep
│       ├── JTFadingInfoView.h
│       └── JTFadingInfoView.m
└── README.md

================================================
FILE CONTENTS
================================================

================================================
FILE: .idea/.name
================================================
JTFadingInfoViewController

================================================
FILE: .idea/JTFadingInfoViewController.iml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<module type="CIDR_MODULE" version="4">
  <component name="NewModuleRootManager">
    <content url="file://$MODULE_DIR$" />
    <orderEntry type="inheritedJdk" />
    <orderEntry type="sourceFolder" forTests="false" />
  </component>
</module>

================================================
FILE: .idea/codeStyleSettings.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="ProjectCodeStyleSettingsManager">
    <option name="PER_PROJECT_SETTINGS">
      <value>
        <Objective-C-extensions>
          <option name="GENERATE_INSTANCE_VARIABLES_FOR_PROPERTIES" value="ASK" />
          <option name="RELEASE_STYLE" value="IVAR" />
          <file>
            <option name="com.jetbrains.objc.util.OCDeclarationKind" value="Import" />
            <option name="com.jetbrains.objc.util.OCDeclarationKind" value="Macro" />
            <option name="com.jetbrains.objc.util.OCDeclarationKind" value="Typedef" />
            <option name="com.jetbrains.objc.util.OCDeclarationKind" value="Struct" />
            <option name="com.jetbrains.objc.util.OCDeclarationKind" value="Enum" />
            <option name="com.jetbrains.objc.util.OCDeclarationKind" value="ClassPredef" />
            <option name="com.jetbrains.objc.util.OCDeclarationKind" value="Constant" />
            <option name="com.jetbrains.objc.util.OCDeclarationKind" value="Global" />
            <option name="com.jetbrains.objc.util.OCDeclarationKind" value="FunctionPredecl" />
            <option name="com.jetbrains.objc.util.OCDeclarationKind" value="Function" />
            <option name="com.jetbrains.objc.util.OCDeclarationKind" value="Class" />
          </file>
          <class>
            <option name="com.jetbrains.objc.util.OCDeclarationKind" value="Property" />
            <option name="com.jetbrains.objc.util.OCDeclarationKind" value="Synthesize" />
            <option name="com.jetbrains.objc.util.OCDeclarationKind" value="InitMethod" />
            <option name="com.jetbrains.objc.util.OCDeclarationKind" value="StaticMethod" />
            <option name="com.jetbrains.objc.util.OCDeclarationKind" value="InstanceMethod" />
            <option name="com.jetbrains.objc.util.OCDeclarationKind" value="DeallocMethod" />
          </class>
        </Objective-C-extensions>
        <XML>
          <option name="XML_LEGACY_SETTINGS_IMPORTED" value="true" />
        </XML>
      </value>
    </option>
    <option name="PREFERRED_PROJECT_CODE_STYLE" value="Default (1)" />
  </component>
</project>

================================================
FILE: .idea/encodings.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" />
</project>

================================================
FILE: .idea/misc.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="ProjectRootManager" version="2" />
</project>

================================================
FILE: .idea/modules.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="ProjectModuleManager">
    <modules>
      <module fileurl="file://$PROJECT_DIR$/.idea/JTFadingInfoViewController.iml" filepath="$PROJECT_DIR$/.idea/JTFadingInfoViewController.iml" />
    </modules>
  </component>
</project>

================================================
FILE: .idea/scopes/scope_settings.xml
================================================
<component name="DependencyValidationManager">
  <state>
    <option name="SKIP_IMPORT_STATEMENTS" value="false" />
  </state>
</component>

================================================
FILE: .idea/vcs.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="VcsDirectoryMappings">
    <mapping directory="$PROJECT_DIR$" vcs="Git" />
  </component>
</project>

================================================
FILE: .idea/workspace.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="ChangeListManager">
    <list default="true" id="8eab1468-d8b6-4006-aa53-f072cc1f26a9" name="Default" comment="">
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/JTFadingInfoViewController/JTInfoView.h" afterPath="$PROJECT_DIR$/JTFadingInfoViewController/JTInfoView.h" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/JTFadingInfoViewController/JTInfoView.m" afterPath="$PROJECT_DIR$/JTFadingInfoViewController/JTInfoView.m" />
    </list>
    <ignored path="JTFadingInfoViewController.iws" />
    <ignored path=".idea/workspace.xml" />
    <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
    <option name="TRACKING_ENABLED" value="true" />
    <option name="SHOW_DIALOG" value="false" />
    <option name="HIGHLIGHT_CONFLICTS" value="true" />
    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
    <option name="LAST_RESOLUTION" value="IGNORE" />
  </component>
  <component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
  <component name="CreatePatchCommitExecutor">
    <option name="PATCH_PATH" value="" />
  </component>
  <component name="DaemonCodeAnalyzer">
    <disable_hints />
  </component>
  <component name="ExecutionTargetManager" SELECTED_TARGET="iphonesimulator_iPhone_6_8.1_x86_64_1" />
  <component name="FavoritesManager">
    <favorites_list name="JTFadingInfoViewController" />
  </component>
  <component name="FileEditorManager">
    <leaf>
      <file leaf-file-name="JTInfoView.m" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/JTFadingInfoViewController/JTInfoView.m">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0" vertical-offset="770" max-vertical-offset="1890">
              <caret line="21" column="13" selection-start-line="21" selection-start-column="13" selection-end-line="21" selection-end-column="13" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="JTInfoView.h" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/JTFadingInfoViewController/JTInfoView.h">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0" vertical-offset="107" max-vertical-offset="714">
              <caret line="19" column="4" selection-start-line="19" selection-start-column="4" selection-end-line="19" selection-end-column="4" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="JTFadingInfoViewController.m" pinned="false" current-in-tab="true">
        <entry file="file://$PROJECT_DIR$/JTFadingInfoViewController/JTFadingInfoViewController.m">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.70016474" vertical-offset="275" max-vertical-offset="952">
              <caret line="50" column="57" selection-start-line="50" selection-start-column="57" selection-end-line="50" selection-end-column="57" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
    </leaf>
  </component>
  <component name="Git.Settings">
    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
  </component>
  <component name="IdeDocumentHistory">
    <option name="CHANGED_PATHS">
      <list>
        <option value="$PROJECT_DIR$/JTFadingInfoViewController/JTInfoView.m" />
        <option value="$PROJECT_DIR$/JTFadingInfoViewController/JTInfoView.h" />
      </list>
    </option>
  </component>
  <component name="JsGulpfileManager">
    <detection-done>true</detection-done>
  </component>
  <component name="ProjectFrameBounds">
    <option name="width" value="1440" />
    <option name="height" value="900" />
  </component>
  <component name="ProjectInspectionProfilesVisibleTreeState">
    <entry key="Project Default">
      <profile-state>
        <expanded-state>
          <State>
            <id />
          </State>
          <State>
            <id>CSS</id>
          </State>
          <State>
            <id>Code style issuesJavaScript</id>
          </State>
          <State>
            <id>Control flow issuesJavaScript</id>
          </State>
          <State>
            <id>JavaScript</id>
          </State>
          <State>
            <id>JavaScript function metricsJavaScript</id>
          </State>
          <State>
            <id>JavaScript validity issuesJavaScript</id>
          </State>
          <State>
            <id>Portability issues</id>
          </State>
          <State>
            <id>Potentially confusing code constructsJavaScript</id>
          </State>
          <State>
            <id>Probable bugsCSS</id>
          </State>
          <State>
            <id>Probable bugsJavaScript</id>
          </State>
          <State>
            <id>XPath</id>
          </State>
        </expanded-state>
        <selected-state>
          <State>
            <id>C/C++</id>
          </State>
        </selected-state>
      </profile-state>
    </entry>
  </component>
  <component name="ProjectLevelVcsManager" settingsEditedManually="false">
    <OptionsSetting value="true" id="Add" />
    <OptionsSetting value="true" id="Remove" />
    <OptionsSetting value="true" id="Checkout" />
    <OptionsSetting value="true" id="Update" />
    <OptionsSetting value="true" id="Status" />
    <OptionsSetting value="true" id="Edit" />
    <ConfirmationsSetting value="0" id="Add" />
    <ConfirmationsSetting value="0" id="Remove" />
  </component>
  <component name="ProjectView">
    <navigator currentView="ProjectPane" proportions="" version="1">
      <flattenPackages />
      <showMembers />
      <showModules />
      <showLibraryContents />
      <hideEmptyPackages />
      <abbreviatePackageNames />
      <autoscrollToSource />
      <autoscrollFromSource />
      <sortByType />
    </navigator>
    <panes>
      <pane id="Cidr.FilesView" />
      <pane id="ProjectPane">
        <subPane>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" />
              <option name="myItemType" value="com.jetbrains.cidr.projectView.XcodeRootNode" />
            </PATH_ELEMENT>
          </PATH>
        </subPane>
      </pane>
    </panes>
  </component>
  <component name="PropertiesComponent">
    <property name="recentsLimit" value="5" />
    <property name="options.lastSelected" value="editor.preferences.appearance" />
    <property name="options.splitter.main.proportions" value="0.3" />
    <property name="options.splitter.details.proportions" value="0.2" />
    <property name="FullScreen" value="true" />
  </component>
  <component name="RunManager" selected="Application.JTFadingInfoViewController">
    <configuration default="false" name="JTFadingInfoViewController" type="AppleRunConfiguration" factoryName="Application" temporary="true" WORKING_DIR="" PASS_PARENT_ENVS="FALSE" PROJECT_NAME="JTFadingInfoViewController" TARGET_NAME="JTFadingInfoViewController" CONFIG_NAME="Debug" SCHEME_NAME="JTFadingInfoViewController" RUN_TARGET_PROJECT_NAME="JTFadingInfoViewController" RUN_TARGET_NAME="JTFadingInfoViewController" MAKE_ACTIVE="TRUE" WAIT_FOR="FALSE">
      <envs />
      <EXTENSION ID="org.jetbrains.appcode.reveal.RevealRunConfigurationExtension">
        <REVEAL_SETTINGS autoInject="false" autoInstall="true" askToEnableAutoInstall="true" />
      </EXTENSION>
      <RunnerSettings RunnerId="AppRunner" />
      <ConfigurationWrapper RunnerId="AppRunner" />
      <method />
    </configuration>
    <configuration default="true" type="AppleRunConfiguration" factoryName="Application" PASS_PARENT_ENVS="FALSE" PROJECT_NAME="JTFadingInfoViewController" TARGET_NAME="JTFadingInfoViewController" CONFIG_NAME="Debug" RUN_TARGET_PROJECT_NAME="JTFadingInfoViewController" RUN_TARGET_NAME="JTFadingInfoViewController" MAKE_ACTIVE="TRUE" WAIT_FOR="FALSE">
      <envs />
      <EXTENSION ID="org.jetbrains.appcode.reveal.RevealRunConfigurationExtension">
        <REVEAL_SETTINGS autoInject="false" autoInstall="true" askToEnableAutoInstall="true" />
      </EXTENSION>
      <method />
    </configuration>
    <list size="1">
      <item index="0" class="java.lang.String" itemvalue="Application.JTFadingInfoViewController" />
    </list>
    <recent_temporary>
      <list size="1">
        <item index="0" class="java.lang.String" itemvalue="Application.JTFadingInfoViewController" />
      </list>
    </recent_temporary>
  </component>
  <component name="ShelveChangesManager" show_recycled="false" />
  <component name="SvnConfiguration">
    <configuration />
  </component>
  <component name="TaskManager">
    <task active="true" id="Default" summary="Default task">
      <changelist id="8eab1468-d8b6-4006-aa53-f072cc1f26a9" name="Default" comment="" />
      <created>1438288560104</created>
      <option name="number" value="Default" />
      <updated>1438288560104</updated>
    </task>
    <servers />
  </component>
  <component name="ToolWindowManager">
    <frame x="0" y="0" width="1440" height="900" extended-state="0" />
    <editor active="true" />
    <layout>
      <window_info id="Palette&#9;" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
      <window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
      <window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
      <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3282532" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
      <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
      <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.18888889" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.2555686" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
      <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
      <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
      <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
      <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
      <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
    </layout>
  </component>
  <component name="Vcs.Log.UiProperties">
    <option name="RECENTLY_FILTERED_USER_GROUPS">
      <collection />
    </option>
    <option name="RECENTLY_FILTERED_BRANCH_GROUPS">
      <collection />
    </option>
  </component>
  <component name="VcsContentAnnotationSettings">
    <option name="myLimit" value="2678400000" />
  </component>
  <component name="VcsManagerConfiguration">
    <option name="myTodoPanelSettings">
      <TodoPanelSettings />
    </option>
  </component>
  <component name="XDebuggerManager">
    <breakpoint-manager>
      <option name="time" value="1" />
    </breakpoint-manager>
    <watches-manager />
  </component>
  <component name="editorHistoryManager">
    <entry file="file://$PROJECT_DIR$/JTFadingInfoViewController/JTInfoView.m">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="100">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/JTFadingInfoViewController/JTInfoView.m">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0" vertical-offset="770" max-vertical-offset="1890">
          <caret line="21" column="13" selection-start-line="21" selection-start-column="13" selection-end-line="21" selection-end-column="13" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/JTFadingInfoViewController/JTInfoView.h">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0" vertical-offset="107" max-vertical-offset="714">
          <caret line="19" column="4" selection-start-line="19" selection-start-column="4" selection-end-line="19" selection-end-column="4" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/JTFadingInfoViewController/JTFadingInfoViewController.m">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.70016474" vertical-offset="275" max-vertical-offset="952">
          <caret line="50" column="57" selection-start-line="50" selection-start-column="57" selection-end-line="50" selection-end-column="57" />
          <folding />
        </state>
      </provider>
    </entry>
  </component>
</project>

================================================
FILE: .idea/xcode.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="XcodeMetaData" PROJECT_FILE="$PROJECT_DIR$/JTFadingInfoViewController.xcodeproj" />
</project>

================================================
FILE: Example/JTFadingInfoView/AppDelegate.h
================================================
//
//  AppDelegate.h
//  JTFadingInfoViewController
//
//  Created by DCL_JT on 2015/07/29.
//  Copyright (c) 2015年 Junichi Tsurukawa. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) UIViewController *viewController;


@end



================================================
FILE: Example/JTFadingInfoView/AppDelegate.m
================================================
//
//  AppDelegate.m
//  JTFadingInfoViewController
//
//  Created by DCL_JT on 2015/07/29.
//  Copyright (c) 2015年 Junichi Tsurukawa. All rights reserved.
//

#import "AppDelegate.h"
#import "RootViewController.h"

@interface AppDelegate ()

@end

@implementation AppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  // Override point for customization after application launch.
  self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

  RootViewController *rootVC = [[RootViewController alloc] init];
  
  UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:rootVC];
  [navController setNavigationBarHidden:YES animated:YES];
  
  self.viewController = navController;
  self.window.rootViewController = self.viewController;
  
  [self.window makeKeyAndVisible];
  
  return YES;
}

- (void)applicationWillResignActive:(UIApplication *)application {
  // 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.
  // 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.
}

- (void)applicationDidEnterBackground:(UIApplication *)application {
  // 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.
  // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}

- (void)applicationWillEnterForeground:(UIApplication *)application {
  // 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.
}

- (void)applicationDidBecomeActive:(UIApplication *)application {
  // 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.
}

- (void)applicationWillTerminate:(UIApplication *)application {
  // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}

@end


================================================
FILE: Example/JTFadingInfoView/Base.lproj/LaunchScreen.xib
================================================
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="6250" systemVersion="13F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES">
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6244"/>
        <capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/>
    </dependencies>
    <objects>
        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
        <view contentMode="scaleToFill" id="iN0-l3-epB">
            <rect key="frame" x="0.0" y="0.0" width="480" height="480"/>
            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
            <subviews>
                <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="  Copyright (c) 2015年 Junichi Tsurukawa. All rights reserved." textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="8ie-xW-0ye">
                    <rect key="frame" x="20" y="439" width="441" height="21"/>
                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
                    <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
                    <nil key="highlightedColor"/>
                </label>
                <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="JTFadingInfoView" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="kId-c2-rCX">
                    <rect key="frame" x="20" y="140" width="441" height="43"/>
                    <fontDescription key="fontDescription" type="boldSystem" pointSize="36"/>
                    <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
                    <nil key="highlightedColor"/>
                </label>
            </subviews>
            <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
            <constraints>
                <constraint firstItem="kId-c2-rCX" firstAttribute="centerY" secondItem="iN0-l3-epB" secondAttribute="bottom" multiplier="1/3" constant="1" id="5cJ-9S-tgC"/>
                <constraint firstAttribute="centerX" secondItem="kId-c2-rCX" secondAttribute="centerX" id="Koa-jz-hwk"/>
                <constraint firstAttribute="bottom" secondItem="8ie-xW-0ye" secondAttribute="bottom" constant="20" id="Kzo-t9-V3l"/>
                <constraint firstItem="8ie-xW-0ye" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="20" symbolic="YES" id="MfP-vx-nX0"/>
                <constraint firstAttribute="centerX" secondItem="8ie-xW-0ye" secondAttribute="centerX" id="ZEH-qu-HZ9"/>
                <constraint firstItem="kId-c2-rCX" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="20" symbolic="YES" id="fvb-Df-36g"/>
            </constraints>
            <nil key="simulatedStatusBarMetrics"/>
            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
            <point key="canvasLocation" x="548" y="455"/>
        </view>
    </objects>
</document>


================================================
FILE: Example/JTFadingInfoView/Class/JTFadingInfoView.h
================================================
//
//  JTFadingInfoView.h
//  JTFadingInfoView
//
//  Created by Junichi Tsurukawa on 2015/07/29.
//
//  The MIT License (MIT)
//  Copyright (c) 2015 Junichi Tsurukawa. All rights reserved.
//
//  Permission is hereby granted, free of charge, to any person obtaining a copy
//  of this software and associated documentation files (the "Software"), to deal
//  in the Software without restriction, including without limitation the rights
//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
//  copies of the Software, and to permit persons to whom the Software is
//  furnished to do so, subject to the following conditions:
//
//  The above copyright notice and this permission notice shall be included in
//  all copies or substantial portions of the Software.
//
//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
//  THE SOFTWARE.

#import <UIKit/UIKit.h>

#pragma mark - Fade in/out options
typedef enum {
  JTFadeInDirectionFromAbove = 1,
  JTFadeInDirectionFromBelow,
  JTFadeInDirectionFromLeft,
  JTFadeInDirectionFromRight,
  JTFadeInDirectionFromPresentPosition
} JTFadeInDirectionType;

typedef enum {
  JTFadeOutDirectionToAbove = 1,
  JTFadeOutDirectionToBelow,
  JTFadeOutDirectionToLeft,
  JTFadeOutDirectionToRight,
  JTFadeOutDirectionToPresentPosition
} JTFadeOutDirectionType;

typedef enum {
  JTDisplayDurationInfinity
} JTDisplayDurationOption;

@interface JTFadingInfoView : UIButton
#pragma mark - Initializer
/**
 *  Initializes a JTFadingInfoView with a frame and label to be shown on.
 *
 *  @param frame A CGRect value for this view's frame
 *  @param label A NSString value to use as this view's label
 *
 *  @return A JTFadingInfoView with frame and label
 */
- (id)initWithFrame:(CGRect)frame label:(NSString *)label;

#pragma mark - Instance Methods
/**
 *  appearWithDuration:duration has a role to display JTFadingInfoView for specified time
 *
 *  @param duration A NSTimeInterval value as a duration time to display JTFadingInfoView
 */
- (void)appearWithDuration: (NSTimeInterval)duration;

/**
 *  disappearFromSuperview has a role to disappear JTFadingInfoView with fading animation.
 *
 */
- (void)disappearFromSuperview;

#pragma mark - Properties
#pragma Shadow
/** A Boolean value for whether the shadow effect is enabled or not. */
@property BOOL isShadowEnabled;
/** A Boolean value for whether the animation effect is enabled or not. */
@property BOOL isAnimationEnabled;

#pragma Animatoins
/** A float represeting the time for displaying this view itself (second). If <= 0, view will not disappear */
@property float displayDuration;
/** A float representing the time the view is appeared by (second). */
@property float appearingDuration;
/** A float representing the time the view is disappeared by (second). */
@property float disappearingDuration;
/** A float representing how much the view moves during fading in/out. */
@property float animationMovement;
/** A JTFadeInType representing from which direction the view appears */
@property JTFadeInDirectionType fadeInDirection;
/** A JTFadeInType representing to which direction the view will be disappeared */
@property JTFadeOutDirectionType fadeOutDirection;

@end


================================================
FILE: Example/JTFadingInfoView/Class/JTFadingInfoView.m
================================================
//
//  JTFadingInfoView.m
//  JTFadingInfoView
//
//  Created by Junichi Tsurukawa on 2015/07/29.
//
//  The MIT License (MIT)
//  Copyright (c) 2015 Junichi Tsurukawa. All rights reserved.
//
//  Permission is hereby granted, free of charge, to any person obtaining a copy
//  of this software and associated documentation files (the "Software"), to deal
//  in the Software without restriction, including without limitation the rights
//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
//  copies of the Software, and to permit persons to whom the Software is
//  furnished to do so, subject to the following conditions:
//
//  The above copyright notice and this permission notice shall be included in
//  all copies or substantial portions of the Software.
//
//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
//  THE SOFTWARE.

#import "JTFadingInfoView.h"
#import <QuartzCore/QuartzCore.h>

@interface JTFadingInfoView ()

@property CALayer *backgroundShadowLayer;

@end

@implementation JTFadingInfoView


- (id)initWithFrame:(CGRect)frame label:(NSString *)label
{
  self = [self initWithFrame:frame];
  [self setTitle:label forState:UIControlStateNormal];
  return self;
}

- (id)initWithFrame:(CGRect)frame
{
  self = [super initWithFrame:frame];
  
  //NSLog(@"%@", NSStringFromCGRect(self.frame));
  
  // Initial value for each property
  self.isAnimationEnabled = YES;
  self.isShadowEnabled = YES;
  self.backgroundColor = [UIColor colorWithRed:0.f/255.f green:140.f/255.f blue:250.f/255.f alpha:1.0f];
  self.titleLabel.textColor = [UIColor whiteColor];
  self.titleLabel.textAlignment = NSTextAlignmentCenter;
  self.alpha = 0.0f;
  self.titleLabel.lineBreakMode = NSLineBreakByWordWrapping;
  self.fadeInDirection = JTFadeInDirectionFromBelow;
  self.fadeOutDirection = JTFadeOutDirectionToBelow;
  self.animationMovement = 30.0f;
  self.appearingDuration = 1.0f;
  self.displayDuration = 3.0f;
  self.disappearingDuration = 1.0f;

  // Add touch behavior
  self.userInteractionEnabled = YES;
  self.tag = 100;
  
  return self;
}

// tap event listener
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
  UITouch *touch = [[event allTouches] anyObject];
  //NSLog(@"tap pos: %@", touch.)
  if ( touch.view.tag == self.tag ){
    //NSLog(@"Do STG");
    [self disappearFromSuperview];
  }
}

// called when addSubview method is fired
- (void)willMoveToSuperview:(UIView *)newSuperview
{
  //NSLog(@"willMoveToSuperview called");
  [self appearWithDuration:self.displayDuration];
}

// appear behavior with animation
- (void)appear
{
  // Corner Radius
  self.layer.cornerRadius = 3.0f;
  
  // Add shadow layer like material design
  if (self.isShadowEnabled) {
    CALayer *caLayer = self.layer;
    caLayer.frame = self.frame;
    caLayer.shadowRadius = 3.0f;
    caLayer.shadowOpacity = 0.4f;
    caLayer.shadowOffset = CGSizeMake(0.0f, 3.0f);
    caLayer.shouldRasterize = YES;
    // retina screen resolution
    [caLayer setRasterizationScale:[[UIScreen mainScreen] scale]];
    [caLayer setShouldRasterize:YES];
  }
  
  // Animation
  //NSLog(@"%d", self.isAnimationEnabled);
  // Do animation if the property selected YES
  if (self.isAnimationEnabled) {
    
    //NSLog(@"animation appear");
    
    CGRect appearFrom = self.frame;
    CGRect pos;
    
    // fade in behaviors with each property
    switch (self.fadeInDirection) {
      case JTFadeInDirectionFromAbove:
        //NSLog(@"JTFadeInDirectionFromBelow");
        appearFrom.origin.y -= self.animationMovement;
        self.frame = appearFrom;
        pos = self.frame;
        pos.origin.y += self.animationMovement;
        break;
        
      case JTFadeInDirectionFromBelow:
        //NSLog(@"JTFadeInDirectionFromBelow");
        appearFrom.origin.y += self.animationMovement;
        self.frame = appearFrom;
        pos = self.frame;
        pos.origin.y -= self.animationMovement;
        break;
        
      case JTFadeInDirectionFromLeft:
        //NSLog(@"JTFadeInDirectionFromLeft");
        appearFrom.origin.x -= self.animationMovement;
        self.frame = appearFrom;
        pos = self.frame;
        pos.origin.x += self.animationMovement;
        break;
        
      case JTFadeInDirectionFromRight:
        //NSLog(@"JTFadeInDirectionFromRight");
        appearFrom.origin.x += self.animationMovement;
        self.frame = appearFrom;
        pos = self.frame;
        pos.origin.x -= self.animationMovement;
        break;
        
      case JTFadeInDirectionFromPresentPosition:
        //NSLog(@"JTFadeOutDirectionFromPresentPosition");
        self.frame = appearFrom;
        pos = self.frame;
        break;
        
      default:
        break;
    }
    
    // animation function
    [UIView animateWithDuration: self.appearingDuration
                          delay: 0.5f
                        options: UIViewAnimationOptionLayoutSubviews
                     animations: ^{
                       self.alpha = 1.0f;
                       self.frame = pos;
                     }
                     completion:^(BOOL finished) {
                       //NSLog(@"complete");
                     }];
  }
  // when the property self.isAnimationEnabled is false
  else {
    // just set the aplha value to 1.0 immediately
    self.alpha = 1.0f;
  }
}

// appear with display duration
- (void)appearWithDuration: (NSTimeInterval)duration
{
  [self appear];
  if ( duration > 0 || duration != JTDisplayDurationInfinity) {
    [self performSelector:@selector(disappearFromSuperview) withObject:nil afterDelay:duration];
  }
}

// disappear behavior with animation
- (void)disappearFromSuperview
{
  CGRect pos = self.frame;
  
  // fade out behaviors with each property
  switch (self.fadeOutDirection) {
    case JTFadeOutDirectionToAbove:
      //NSLog(@"JTFadeOutDirectionToAbove");
      pos.origin.y -= self.animationMovement;
      break;
      
    case JTFadeOutDirectionToBelow:
      //NSLog(@"JTFadeOutDirectionToBelow");
      pos.origin.y += self.animationMovement;
      break;
      
    case JTFadeOutDirectionToLeft:
      //NSLog(@"JTFadeOutDirectionToLeft");
      pos.origin.x -= self.animationMovement;
      break;
      
    case JTFadeOutDirectionToRight:
      //NSLog(@"JTFadeOutDirectionToRight");
      pos.origin.x += self.animationMovement;
      break;
      
    case JTFadeOutDirectionToPresentPosition:
      //NSLog(@"JTFadeOutDirectionToPresentPosition");
      break;
      
    default:
      break;
  }
  
  // Do animation if the property selected YES
  if (self.isAnimationEnabled) {
    [UIView animateWithDuration: self.disappearingDuration
                          delay: self.appearingDuration
                        options: UIViewAnimationOptionLayoutSubviews
                     animations: ^{
                       self.alpha = 0.0f;
                       self.frame = pos;
                     }
                     completion:^(BOOL finished) {
                       //NSLog(@"complete rem");
                       [self removeFromSuperview];
                     }];
  }
  // when self.isAnimationEnabled is false
  else{
    // just set aplha to 0 to be invisible, and removeFromSuperview
    self.alpha = 0.0f;
    [self removeFromSuperview];
  }
}


@end



================================================
FILE: Example/JTFadingInfoView/Images.xcassets/AppIcon.appiconset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "iphone",
      "size" : "29x29",
      "scale" : "2x"
    },
    {
      "idiom" : "iphone",
      "size" : "29x29",
      "scale" : "3x"
    },
    {
      "idiom" : "iphone",
      "size" : "40x40",
      "scale" : "2x"
    },
    {
      "idiom" : "iphone",
      "size" : "40x40",
      "scale" : "3x"
    },
    {
      "idiom" : "iphone",
      "size" : "60x60",
      "scale" : "2x"
    },
    {
      "idiom" : "iphone",
      "size" : "60x60",
      "scale" : "3x"
    },
    {
      "idiom" : "ipad",
      "size" : "29x29",
      "scale" : "1x"
    },
    {
      "idiom" : "ipad",
      "size" : "29x29",
      "scale" : "2x"
    },
    {
      "idiom" : "ipad",
      "size" : "40x40",
      "scale" : "1x"
    },
    {
      "idiom" : "ipad",
      "size" : "40x40",
      "scale" : "2x"
    },
    {
      "idiom" : "ipad",
      "size" : "76x76",
      "scale" : "1x"
    },
    {
      "idiom" : "ipad",
      "size" : "76x76",
      "scale" : "2x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: Example/JTFadingInfoView/Images.xcassets/LaunchImage.launchimage/Contents.json
================================================
{
  "images" : [
    {
      "orientation" : "portrait",
      "idiom" : "ipad",
      "minimum-system-version" : "7.0",
      "extent" : "full-screen",
      "scale" : "2x"
    },
    {
      "orientation" : "landscape",
      "idiom" : "ipad",
      "minimum-system-version" : "7.0",
      "extent" : "full-screen",
      "scale" : "1x"
    },
    {
      "orientation" : "landscape",
      "idiom" : "ipad",
      "minimum-system-version" : "7.0",
      "extent" : "full-screen",
      "scale" : "2x"
    },
    {
      "orientation" : "portrait",
      "idiom" : "iphone",
      "minimum-system-version" : "7.0",
      "scale" : "2x"
    },
    {
      "orientation" : "portrait",
      "idiom" : "iphone",
      "minimum-system-version" : "7.0",
      "subtype" : "retina4",
      "scale" : "2x"
    },
    {
      "orientation" : "portrait",
      "idiom" : "ipad",
      "minimum-system-version" : "7.0",
      "extent" : "full-screen",
      "scale" : "1x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: Example/JTFadingInfoView/Images.xcassets/cyan-pentagonal-background.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "cyan-pentagonal-background.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "cyan-pentagonal-background-1.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x",
      "filename" : "cyan-pentagonal-background-1-1.png"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: Example/JTFadingInfoView/Images.xcassets/icon.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "icon.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "icon-1.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x",
      "filename" : "icon-1-1.png"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: Example/JTFadingInfoView/Info.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>CFBundleDevelopmentRegion</key>
	<string>en</string>
	<key>CFBundleExecutable</key>
	<string>$(EXECUTABLE_NAME)</string>
	<key>CFBundleIdentifier</key>
	<string>Junichi.$(PRODUCT_NAME:rfc1034identifier)</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string>$(PRODUCT_NAME)</string>
	<key>CFBundlePackageType</key>
	<string>APPL</string>
	<key>CFBundleShortVersionString</key>
	<string>1.0</string>
	<key>CFBundleSignature</key>
	<string>????</string>
	<key>CFBundleVersion</key>
	<string>1</string>
	<key>LSRequiresIPhoneOS</key>
	<true/>
	<key>UILaunchStoryboardName</key>
	<string>LaunchScreen</string>
	<key>UIRequiredDeviceCapabilities</key>
	<array>
		<string>armv7</string>
	</array>
	<key>UISupportedInterfaceOrientations</key>
	<array>
		<string>UIInterfaceOrientationPortrait</string>
		<string>UIInterfaceOrientationLandscapeLeft</string>
		<string>UIInterfaceOrientationLandscapeRight</string>
	</array>
	<key>UISupportedInterfaceOrientations~ipad</key>
	<array>
		<string>UIInterfaceOrientationPortrait</string>
		<string>UIInterfaceOrientationPortraitUpsideDown</string>
		<string>UIInterfaceOrientationLandscapeLeft</string>
		<string>UIInterfaceOrientationLandscapeRight</string>
	</array>
</dict>
</plist>


================================================
FILE: Example/JTFadingInfoView/LogInViewController.h
================================================
//
//  LogInViewController.h
//  JTFadingInfoView
//
//  Created by DCL_JT on 2015/08/07.
//  Copyright (c) 2015年 Junichi Tsurukawa. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface LogInViewController : UIViewController <UITextFieldDelegate>
@property (weak, nonatomic) IBOutlet UIImageView *backGroundImage;
@property (weak, nonatomic) IBOutlet UIImageView *frameView;

@property (weak, nonatomic) IBOutlet UIButton *closeButton;
@property (weak, nonatomic) IBOutlet UITextField *textField;
@property (weak, nonatomic) IBOutlet UITextField *passField;
@end


================================================
FILE: Example/JTFadingInfoView/LogInViewController.m
================================================
//
//  LogInViewController.m
//  JTFadingInfoView
//
//  Created by DCL_JT on 2015/08/07.
//  Copyright (c) 2015年 Junichi Tsurukawa. All rights reserved.
//

#import "LogInViewController.h"
#import "JTFadingInfoView.h"

@interface LogInViewController ()

@end

@implementation LogInViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
  self.textField.delegate = self;
  self.passField.delegate = self;
  [self.navigationController setNavigationBarHidden:YES animated:YES];

  [self.view sendSubviewToBack:self.frameView];
  [self.view sendSubviewToBack:self.backGroundImage];
  
  CALayer *caLayer = self.frameView.layer;
  caLayer.frame = self.frameView.frame;
  caLayer.cornerRadius = 5.0f;
  caLayer.shadowRadius = 3.0f;
  caLayer.shadowOpacity = 0.4f;
  caLayer.shadowOffset = CGSizeMake(0.0f, 3.0f);

}

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
  [textField resignFirstResponder];
  return YES;
}

- (IBAction)tapCloseButton:(id)sender {
  [self.navigationController popViewControllerAnimated:YES];
}


- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/

- (IBAction)logInPressed:(id)sender {
  
  NSString *msg = @"Login Success!";
  CGRect frame = CGRectZero;
  frame.origin.x = self.view.frame.size.width/4;
  frame.origin.y = self.view.frame.size.height*4/5;
  frame.size.width = self.view.frame.size.width/2;
  frame.size.height = 40;
  
  JTFadingInfoView *infoView = [[JTFadingInfoView alloc] initWithFrame:frame label:msg];
  infoView.appearingDuration = 0.4;
  [self.view addSubview:infoView];
  
}


@end


================================================
FILE: Example/JTFadingInfoView/LogInViewController.xib
================================================
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="6250" systemVersion="13F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6244"/>
        <capability name="Aspect ratio constraints" minToolsVersion="5.1"/>
    </dependencies>
    <objects>
        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="LogInViewController">
            <connections>
                <outlet property="backGroundImage" destination="xzC-pY-dcK" id="Ous-m1-7Yb"/>
                <outlet property="closeButton" destination="IYT-Tb-M6O" id="Re9-5h-gIY"/>
                <outlet property="frameView" destination="IAH-Wd-0kC" id="C9k-qY-965"/>
                <outlet property="passField" destination="DYe-WT-AdV" id="l6t-q2-aRu"/>
                <outlet property="textField" destination="PIJ-xn-BFa" id="YFG-qk-2uO"/>
                <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
            </connections>
        </placeholder>
        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
        <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
            <rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
            <subviews>
                <imageView userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="cyan-pentagonal-background" translatesAutoresizingMaskIntoConstraints="NO" id="xzC-pY-dcK">
                    <rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
                </imageView>
                <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="IAH-Wd-0kC">
                    <rect key="frame" x="159" y="100" width="282" height="280"/>
                    <color key="backgroundColor" red="0.0" green="0.61302216198979598" blue="0.57317067687675249" alpha="1" colorSpace="calibratedRGB"/>
                    <constraints>
                        <constraint firstAttribute="height" constant="280" id="Dt1-TQ-piP"/>
                        <constraint firstAttribute="width" constant="282" id="HBb-N2-uqM"/>
                        <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="280" id="s3f-aU-74V"/>
                    </constraints>
                </imageView>
                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="baf-wd-Oz9">
                    <rect key="frame" x="281" y="337" width="39" height="30"/>
                    <constraints>
                        <constraint firstAttribute="height" constant="30" id="IMz-AV-k7j"/>
                        <constraint firstAttribute="width" constant="39" id="zOU-fF-FIl"/>
                    </constraints>
                    <state key="normal" title="LogIn">
                        <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                        <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
                    </state>
                    <connections>
                        <action selector="logInPressed:" destination="-1" eventType="touchUpInside" id="woG-RG-Nl5"/>
                    </connections>
                </button>
                <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="Username" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="PIJ-xn-BFa">
                    <rect key="frame" x="207" y="248" width="187" height="30"/>
                    <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
                    <color key="tintColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                    <constraints>
                        <constraint firstAttribute="height" constant="30" id="3EV-I4-9dT"/>
                        <constraint firstAttribute="width" constant="187" id="lMn-ug-cOG"/>
                    </constraints>
                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
                    <textInputTraits key="textInputTraits"/>
                </textField>
                <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="Password" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="DYe-WT-AdV">
                    <rect key="frame" x="207" y="286" width="187" height="30"/>
                    <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
                    <color key="tintColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                    <constraints>
                        <constraint firstAttribute="height" constant="30" id="lcQ-mX-a18"/>
                        <constraint firstAttribute="width" constant="187" id="trf-0q-dqe"/>
                    </constraints>
                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
                    <textInputTraits key="textInputTraits" keyboardAppearance="alert" enablesReturnKeyAutomatically="YES" secureTextEntry="YES"/>
                </textField>
                <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="9U3-Vv-eFP">
                    <rect key="frame" x="250" y="119" width="100" height="100"/>
                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
                    <constraints>
                        <constraint firstAttribute="width" secondItem="9U3-Vv-eFP" secondAttribute="height" multiplier="1:1" id="mOg-gX-dsu"/>
                    </constraints>
                </imageView>
                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="IYT-Tb-M6O">
                    <rect key="frame" x="397" y="106" width="34" height="34"/>
                    <constraints>
                        <constraint firstAttribute="height" constant="34" id="rXl-fQ-ieD"/>
                        <constraint firstAttribute="width" constant="34" id="uUi-71-4Sx"/>
                    </constraints>
                    <fontDescription key="fontDescription" type="system" pointSize="24"/>
                    <state key="normal" title="×">
                        <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
                    </state>
                    <connections>
                        <action selector="tapCloseButton:" destination="-1" eventType="touchUpInside" id="QZe-cY-m20"/>
                    </connections>
                </button>
            </subviews>
            <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
            <constraints>
                <constraint firstAttribute="centerX" secondItem="PIJ-xn-BFa" secondAttribute="centerX" id="2QI-Op-bKA"/>
                <constraint firstItem="IAH-Wd-0kC" firstAttribute="top" secondItem="9U3-Vv-eFP" secondAttribute="bottom" constant="-119" id="89T-HA-dwU"/>
                <constraint firstAttribute="centerX" secondItem="DYe-WT-AdV" secondAttribute="centerX" id="ANn-VZ-TJ4"/>
                <constraint firstItem="IAH-Wd-0kC" firstAttribute="top" secondItem="IYT-Tb-M6O" secondAttribute="bottom" constant="-40" id="FXX-iS-KA8"/>
                <constraint firstItem="9U3-Vv-eFP" firstAttribute="trailing" secondItem="IAH-Wd-0kC" secondAttribute="trailing" constant="-91" id="Fyw-Pq-S7x"/>
                <constraint firstAttribute="centerX" secondItem="baf-wd-Oz9" secondAttribute="centerX" id="HeR-8a-tSr"/>
                <constraint firstItem="DYe-WT-AdV" firstAttribute="top" secondItem="PIJ-xn-BFa" secondAttribute="bottom" constant="8" id="aEO-My-sTe"/>
                <constraint firstAttribute="centerX" secondItem="IAH-Wd-0kC" secondAttribute="centerX" id="e3o-VX-znk"/>
                <constraint firstItem="baf-wd-Oz9" firstAttribute="top" secondItem="DYe-WT-AdV" secondAttribute="bottom" constant="21" id="k7l-eR-oE0"/>
                <constraint firstItem="PIJ-xn-BFa" firstAttribute="top" secondItem="9U3-Vv-eFP" secondAttribute="bottom" constant="29" id="mkh-sS-UAz"/>
                <constraint firstItem="IAH-Wd-0kC" firstAttribute="trailing" secondItem="IYT-Tb-M6O" secondAttribute="trailing" constant="10" id="pEj-5A-fpj"/>
                <constraint firstItem="IAH-Wd-0kC" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" constant="100" id="rkW-FO-1YC"/>
                <constraint firstItem="9U3-Vv-eFP" firstAttribute="leading" secondItem="IAH-Wd-0kC" secondAttribute="leading" constant="91" id="sAX-RC-C7N"/>
            </constraints>
            <point key="canvasLocation" x="133" y="440"/>
        </view>
    </objects>
    <resources>
        <image name="cyan-pentagonal-background" width="2000" height="3000"/>
        <image name="icon" width="600" height="600"/>
    </resources>
</document>


================================================
FILE: Example/JTFadingInfoView/PropertyViewController.h
================================================
//
//  PropertyViewController.h
//  JTFadingInfoView
//
//  Created by DCL_JT on 2015/08/07.
//  Copyright (c) 2015年 Junichi Tsurukawa. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface PropertyViewController : UIViewController <UITextFieldDelegate>
@property (weak, nonatomic) IBOutlet UISegmentedControl *appearDirectionControl;
@property (weak, nonatomic) IBOutlet UISegmentedControl *disappearDirectionControl;
@property (weak, nonatomic) IBOutlet UITextField *appearingDurationField;
@property (weak, nonatomic) IBOutlet UITextField *displayingDurationField;
@property (weak, nonatomic) IBOutlet UITextField *disappearingDurationField;
@property (weak, nonatomic) IBOutlet UIButton *showInfoViewButton;

@end


================================================
FILE: Example/JTFadingInfoView/PropertyViewController.m
================================================
//
//  PropertyViewController.m
//  JTFadingInfoView
//
//  Created by DCL_JT on 2015/08/07.
//  Copyright (c) 2015年 Junichi Tsurukawa. All rights reserved.
//

#import "PropertyViewController.h"
#import "JTFadingInfoView.h"

@interface PropertyViewController (){
  JTFadingInfoView *infoView;
  UILabel *subLabel;
}

@end

@implementation PropertyViewController

- (void)viewDidLoad {
  [super viewDidLoad];
  // Do any additional setup after loading the view, typically from a nib.
  [self.navigationController setNavigationBarHidden:NO animated:YES];
  self.appearingDurationField.delegate = self;
  self.displayingDurationField.delegate = self;
  self.disappearingDurationField.delegate = self;
  self.view.backgroundColor = [UIColor whiteColor];
  
  self.appearingDurationField.text = @"1.5";
  self.displayingDurationField.text = @"3.0";
  self.disappearingDurationField.text = @"1.5";
  
  //  Simplest Call
  //  CGRect frame = CGRectMake(90, 400, 190, 50);
  //  NSString *label = @"JTFadingInfoView!";
  //  JTFadingInfoView *inforView = [[JTFadingInfoView alloc] initWithFrame:frame
  //                                                                 label:label];
  //  [self.view addSubview:inforView];
  
}

- (void)selectAppearValue
{
  switch (self.appearDirectionControl.selectedSegmentIndex) {
    case 0:
      infoView.fadeInDirection = JTFadeInDirectionFromAbove;
      break;
      
    case 1:
      infoView.fadeInDirection = JTFadeInDirectionFromBelow;
      break;
      
    case 2:
      infoView.fadeInDirection = JTFadeInDirectionFromLeft;
      break;
      
    case 3:
      infoView.fadeInDirection = JTFadeInDirectionFromRight;
      break;
      
    case 4:
      infoView.fadeInDirection = JTFadeInDirectionFromPresentPosition;
      break;
      
    default:
      break;
  }
}

- (void)selectDisappearValue
{
  switch (self.disappearDirectionControl.selectedSegmentIndex) {
      case 0:
      infoView.fadeOutDirection = JTFadeOutDirectionToAbove;
      break;
      
      case 1:
      infoView.fadeOutDirection = JTFadeOutDirectionToBelow;
      break;
      
      case 2:
      infoView.fadeOutDirection = JTFadeOutDirectionToLeft;
      break;
      
      case 3:
      infoView.fadeOutDirection = JTFadeOutDirectionToRight;
      break;
      
      case 4:
      infoView.fadeOutDirection = JTFadeOutDirectionToPresentPosition;
      break;
      
    default:
      break;
  }
}

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
  [textField resignFirstResponder];
  return YES;
}

- (IBAction)showInfoView:(id)sender {
  [self appear];
}

- (void)didReceiveMemoryWarning {
  [super didReceiveMemoryWarning];
  // Dispose of any resources that can be recreated.
}

- (void)appear
{
  CGRect screenFrame = [[UIScreen mainScreen] bounds];
  CGRect frame = CGRectZero;
  frame.origin.x = screenFrame.size.width / 4;
  frame.origin.y = screenFrame.size.height * 4/5;
  frame.size.width = screenFrame.size.width / 2;
  frame.size.height = 50;
  
  NSString *label = @"Label loaded";
  infoView = [[JTFadingInfoView alloc] initWithFrame:frame label:label];
  
  // Custom Parameters
  infoView.isAnimationEnabled = YES;
  infoView.isShadowEnabled = YES;
  infoView.appearingDuration = [self.appearingDurationField.text floatValue];
  infoView.displayDuration = [self.displayingDurationField.text floatValue];
  infoView.disappearingDuration = [self.disappearingDurationField.text floatValue];
  infoView.animationMovement = 40.0f;
  [self selectAppearValue];
  [self selectDisappearValue];
  
  [self.view addSubview:infoView];
  
}



@end


================================================
FILE: Example/JTFadingInfoView/PropertyViewController.xib
================================================
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="6250" systemVersion="13F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6244"/>
    </dependencies>
    <objects>
        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="PropertyViewController">
            <connections>
                <outlet property="appearDirectionControl" destination="seC-9t-k9z" id="wN4-Hn-yqc"/>
                <outlet property="appearingDurationField" destination="Neq-dz-q3e" id="s4R-6L-zmd"/>
                <outlet property="disappearDirectionControl" destination="OKo-pc-ap6" id="g0J-2T-4sj"/>
                <outlet property="disappearingDurationField" destination="Fqt-xm-CHN" id="1nO-Kh-VNt"/>
                <outlet property="displayingDurationField" destination="pdj-V0-xFL" id="vyF-1y-Woh"/>
                <outlet property="showInfoViewButton" destination="eG6-Sm-TFD" id="ftc-hT-VnA"/>
                <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
            </connections>
        </placeholder>
        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
        <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
            <rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
            <subviews>
                <segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" translatesAutoresizingMaskIntoConstraints="NO" id="seC-9t-k9z">
                    <rect key="frame" x="151" y="104" width="299" height="29"/>
                    <constraints>
                        <constraint firstAttribute="height" constant="28" id="PFj-fM-9WH"/>
                        <constraint firstAttribute="width" constant="299" id="jWc-Sl-Axy"/>
                    </constraints>
                    <segments>
                        <segment title="Above"/>
                        <segment title="Bottom"/>
                        <segment title="Left"/>
                        <segment title="Right"/>
                        <segment title="None"/>
                    </segments>
                </segmentedControl>
                <segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" translatesAutoresizingMaskIntoConstraints="NO" id="OKo-pc-ap6">
                    <rect key="frame" x="151" y="170" width="299" height="29"/>
                    <constraints>
                        <constraint firstAttribute="height" constant="28" id="9nm-Pg-zFX"/>
                        <constraint firstAttribute="width" constant="299" id="stb-6H-odd"/>
                    </constraints>
                    <segments>
                        <segment title="Above"/>
                        <segment title="Bottom"/>
                        <segment title="Left"/>
                        <segment title="Right"/>
                        <segment title="None"/>
                    </segments>
                </segmentedControl>
                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Appear from" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="0Vt-9D-oFv">
                    <rect key="frame" x="247" y="75" width="107" height="21"/>
                    <constraints>
                        <constraint firstAttribute="width" constant="107" id="Sea-wf-27c"/>
                        <constraint firstAttribute="height" constant="21" id="WhE-AY-fXN"/>
                    </constraints>
                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
                    <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
                    <nil key="highlightedColor"/>
                </label>
                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Disappear to" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1C4-vd-w6A">
                    <rect key="frame" x="247" y="141" width="107" height="21"/>
                    <constraints>
                        <constraint firstAttribute="width" constant="107" id="Llb-Op-JGD"/>
                        <constraint firstAttribute="height" constant="21" id="dFu-nu-ddb"/>
                    </constraints>
                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
                    <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
                    <nil key="highlightedColor"/>
                </label>
                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Appearing Duration: " lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="USj-u9-msL">
                    <rect key="frame" x="173" y="214" width="159" height="21"/>
                    <constraints>
                        <constraint firstAttribute="height" constant="21" id="0aV-6q-Kxy"/>
                        <constraint firstAttribute="width" constant="159" id="mo0-UT-Ogr"/>
                    </constraints>
                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
                    <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
                    <nil key="highlightedColor"/>
                </label>
                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Displaying Duration: " lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="X9G-3c-NFG">
                    <rect key="frame" x="173" y="251" width="159" height="21"/>
                    <constraints>
                        <constraint firstAttribute="width" constant="159" id="scO-Cw-tw4"/>
                        <constraint firstAttribute="height" constant="21" id="xwZ-52-BRL"/>
                    </constraints>
                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
                    <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
                    <nil key="highlightedColor"/>
                </label>
                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Disappearing Duration: " lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="sSv-Oh-gy0">
                    <rect key="frame" x="151" y="289" width="181" height="21"/>
                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
                    <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
                    <nil key="highlightedColor"/>
                </label>
                <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="line" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Neq-dz-q3e">
                    <rect key="frame" x="335" y="209" width="50" height="30"/>
                    <constraints>
                        <constraint firstAttribute="width" constant="50" id="Gj0-WN-qVc"/>
                        <constraint firstAttribute="height" constant="30" id="nH2-zJ-i7C"/>
                    </constraints>
                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
                    <textInputTraits key="textInputTraits" keyboardType="numbersAndPunctuation"/>
                    <connections>
                        <outlet property="delegate" destination="-1" id="ZAW-aW-LW6"/>
                    </connections>
                </textField>
                <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="line" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="pdj-V0-xFL">
                    <rect key="frame" x="335" y="246" width="50" height="30"/>
                    <constraints>
                        <constraint firstAttribute="height" constant="30" id="Upj-EE-oXs"/>
                        <constraint firstAttribute="width" constant="50" id="sTw-gi-YCh"/>
                    </constraints>
                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
                    <textInputTraits key="textInputTraits" keyboardType="numbersAndPunctuation"/>
                    <connections>
                        <outlet property="delegate" destination="-1" id="l75-6f-sm2"/>
                    </connections>
                </textField>
                <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="line" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Fqt-xm-CHN">
                    <rect key="frame" x="335" y="284" width="50" height="30"/>
                    <constraints>
                        <constraint firstAttribute="width" constant="50" id="A63-P9-GqU"/>
                        <constraint firstAttribute="height" constant="30" id="nRX-sl-yMR"/>
                    </constraints>
                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
                    <textInputTraits key="textInputTraits" keyboardType="numbersAndPunctuation"/>
                    <connections>
                        <outlet property="delegate" destination="-1" id="Ro7-yG-bLU"/>
                    </connections>
                </textField>
                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Sec." lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="s4f-Vw-RaO">
                    <rect key="frame" x="399" y="214" width="35" height="21"/>
                    <constraints>
                        <constraint firstAttribute="height" constant="21" id="knD-Nm-Y26"/>
                        <constraint firstAttribute="width" constant="35" id="mho-Se-kOG"/>
                    </constraints>
                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
                    <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
                    <nil key="highlightedColor"/>
                </label>
                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Sec." lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="VUS-81-SJo">
                    <rect key="frame" x="399" y="251" width="35" height="21"/>
                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
                    <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
                    <nil key="highlightedColor"/>
                </label>
                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Sec." lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="BcF-4h-zqa">
                    <rect key="frame" x="399" y="289" width="35" height="21"/>
                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
                    <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
                    <nil key="highlightedColor"/>
                </label>
                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="eG6-Sm-TFD">
                    <rect key="frame" x="249" y="332" width="102" height="30"/>
                    <state key="normal" title="Show InfoView">
                        <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
                    </state>
                    <connections>
                        <action selector="showInfoView:" destination="-1" eventType="touchUpInside" id="fOs-3r-wGd"/>
                    </connections>
                </button>
            </subviews>
            <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
            <constraints>
                <constraint firstAttribute="centerX" secondItem="OKo-pc-ap6" secondAttribute="centerX" id="1j3-Lx-aCj"/>
                <constraint firstItem="BcF-4h-zqa" firstAttribute="bottom" secondItem="Fqt-xm-CHN" secondAttribute="bottom" constant="-4" id="2R7-zB-Ra2"/>
                <constraint firstAttribute="centerX" secondItem="Fqt-xm-CHN" secondAttribute="centerX" constant="-60" id="5EO-Tm-EQN"/>
                <constraint firstItem="BcF-4h-zqa" firstAttribute="leading" secondItem="Fqt-xm-CHN" secondAttribute="trailing" constant="14" id="Acm-Yw-bCB"/>
                <constraint firstItem="Neq-dz-q3e" firstAttribute="bottom" secondItem="USj-u9-msL" secondAttribute="bottom" constant="4" id="Bfq-TM-NaA"/>
                <constraint firstItem="pdj-V0-xFL" firstAttribute="bottom" secondItem="X9G-3c-NFG" secondAttribute="bottom" constant="4" id="CAa-3f-s2l"/>
                <constraint firstItem="Fqt-xm-CHN" firstAttribute="leading" secondItem="sSv-Oh-gy0" secondAttribute="trailing" constant="3" id="EZ3-bY-rIm"/>
                <constraint firstAttribute="centerX" secondItem="0Vt-9D-oFv" secondAttribute="centerX" id="GRb-4e-t9I"/>
                <constraint firstItem="sSv-Oh-gy0" firstAttribute="bottom" secondItem="Fqt-xm-CHN" secondAttribute="bottom" constant="-4" id="J19-UF-scW"/>
                <constraint firstItem="pdj-V0-xFL" firstAttribute="bottom" secondItem="VUS-81-SJo" secondAttribute="bottom" constant="4" id="Kc3-fl-bGL"/>
                <constraint firstAttribute="centerX" secondItem="Neq-dz-q3e" secondAttribute="centerX" constant="-60" id="MIT-rd-wqM"/>
                <constraint firstItem="1C4-vd-w6A" firstAttribute="top" secondItem="seC-9t-k9z" secondAttribute="bottom" constant="9" id="MrG-XC-COT"/>
                <constraint firstItem="Fqt-xm-CHN" firstAttribute="top" secondItem="pdj-V0-xFL" secondAttribute="bottom" constant="8" id="Xvb-af-kQt"/>
                <constraint firstItem="seC-9t-k9z" firstAttribute="top" secondItem="0Vt-9D-oFv" secondAttribute="bottom" constant="8" id="ckn-qi-KUD"/>
                <constraint firstItem="VUS-81-SJo" firstAttribute="leading" secondItem="pdj-V0-xFL" secondAttribute="trailing" constant="14" id="cnP-Qh-uCD"/>
                <constraint firstAttribute="centerX" secondItem="eG6-Sm-TFD" secondAttribute="centerX" id="dnJ-w3-9Ja"/>
                <constraint firstItem="0Vt-9D-oFv" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" constant="75" id="e3x-4T-a6G"/>
                <constraint firstItem="OKo-pc-ap6" firstAttribute="top" secondItem="1C4-vd-w6A" secondAttribute="bottom" constant="8" id="eZD-Ka-kss"/>
                <constraint firstItem="s4f-Vw-RaO" firstAttribute="leading" secondItem="Neq-dz-q3e" secondAttribute="trailing" constant="14" id="foi-lK-nz4"/>
                <constraint firstAttribute="centerX" secondItem="pdj-V0-xFL" secondAttribute="centerX" constant="-60" id="gef-yO-VNZ"/>
                <constraint firstAttribute="centerX" secondItem="1C4-vd-w6A" secondAttribute="centerX" id="kRz-Gy-Kvm"/>
                <constraint firstItem="Neq-dz-q3e" firstAttribute="leading" secondItem="USj-u9-msL" secondAttribute="trailing" constant="3" id="kq1-SJ-1tB"/>
                <constraint firstItem="Neq-dz-q3e" firstAttribute="top" secondItem="OKo-pc-ap6" secondAttribute="bottom" constant="11" id="lTj-m4-pt4"/>
                <constraint firstItem="Neq-dz-q3e" firstAttribute="bottom" secondItem="s4f-Vw-RaO" secondAttribute="bottom" constant="4" id="tPE-fi-3FR"/>
                <constraint firstItem="pdj-V0-xFL" firstAttribute="leading" secondItem="X9G-3c-NFG" secondAttribute="trailing" constant="3" id="uGP-xt-t6x"/>
                <constraint firstItem="pdj-V0-xFL" firstAttribute="top" secondItem="Neq-dz-q3e" secondAttribute="bottom" constant="7" id="vTu-ih-RcH"/>
                <constraint firstAttribute="centerX" secondItem="seC-9t-k9z" secondAttribute="centerX" id="zAu-j8-vBM"/>
                <constraint firstItem="eG6-Sm-TFD" firstAttribute="top" secondItem="Fqt-xm-CHN" secondAttribute="bottom" constant="18" id="zha-Qc-Kaw"/>
            </constraints>
            <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/>
            <point key="canvasLocation" x="-58" y="154"/>
        </view>
    </objects>
</document>


================================================
FILE: Example/JTFadingInfoView/RootViewController.h
================================================
//
//  RootViewController.h
//  JTFadingInfoView
//
//  Created by DCL_JT on 2015/08/07.
//  Copyright (c) 2015年 Junichi Tsurukawa. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface RootViewController : UIViewController

@end


================================================
FILE: Example/JTFadingInfoView/RootViewController.m
================================================
//
//  RootViewController.m
//  JTFadingInfoView
//
//  Created by DCL_JT on 2015/08/07.
//  Copyright (c) 2015年 Junichi Tsurukawa. All rights reserved.
//

#import "RootViewController.h"
#import "PropertyViewController.h"
#import "LogInViewController.h"

@interface RootViewController ()

@end

@implementation RootViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
  [self.navigationController setNavigationBarHidden:NO animated:YES];
  [self.navigationController setTitle:@"JTFadingInfoView Sample"];
  self.view.backgroundColor = [UIColor whiteColor];
  
  CGRect frame = CGRectZero;
  frame.origin.x = self.view.frame.size.width/4;
  frame.origin.y = self.view.frame.size.height/3;
  frame.size.width = self.view.frame.size.width/2;
  frame.size.height = 50.0;
  
  UIButton *propertyDemo = [[UIButton alloc] initWithFrame:frame];
  [propertyDemo setTitle:@"Properties Demo" forState:UIControlStateNormal];
  [propertyDemo addTarget:self
                   action:@selector(pressedPropertiesDemo)
         forControlEvents:UIControlEventTouchUpInside];
  propertyDemo.backgroundColor = [UIColor blueColor];
  CALayer *caPropertyDemoLayer = propertyDemo.layer;
  caPropertyDemoLayer.frame = propertyDemo.frame;
  caPropertyDemoLayer.cornerRadius = 5.0f;
  caPropertyDemoLayer.shadowRadius = 3.0f;
  caPropertyDemoLayer.shadowOpacity = 0.4f;
  caPropertyDemoLayer.shadowOffset = CGSizeMake(0.0f, 3.0f);
  [self.view addSubview:propertyDemo];
  
  frame.origin.y = self.view.frame.size.height * 2/3;
  
  UIButton *logInDemo = [[UIButton alloc] initWithFrame:frame];
  [logInDemo setTitle:@"Login Demo" forState:UIControlStateNormal];
  [logInDemo addTarget:self
                   action:@selector(pressedLogInDemo)
         forControlEvents:UIControlEventTouchUpInside];
  logInDemo.backgroundColor = [UIColor blueColor];
  CALayer *caDemoButtonLayer = logInDemo.layer;
  caDemoButtonLayer.frame = logInDemo.frame;
  caDemoButtonLayer.cornerRadius = 5.0f;
  caDemoButtonLayer.shadowRadius = 3.0f;
  caDemoButtonLayer.shadowOpacity = 0.4f;
  caDemoButtonLayer.shadowOffset = CGSizeMake(0.0f, 3.0f);
  [self.view addSubview:logInDemo];
}

- (void)viewWillAppear:(BOOL)animated
{
  [self.navigationController setNavigationBarHidden:NO animated:YES];

}

- (void)pressedPropertiesDemo
{
  PropertyViewController *propertyDemoVC = [[PropertyViewController alloc] init];
  [self.navigationController pushViewController:propertyDemoVC animated:YES];
}

- (void)pressedLogInDemo
{
  LogInViewController *logInDemoVC = [[LogInViewController alloc] init];
  [self.navigationController pushViewController:logInDemoVC animated:YES];
  
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/

@end


================================================
FILE: Example/JTFadingInfoView/main.m
================================================
//
//  main.m
//  JTFadingInfoViewController
//
//  Created by DCL_JT on 2015/07/29.
//  Copyright (c) 2015年 Junichi Tsurukawa. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "AppDelegate.h"

int main(int argc, char * argv[]) {
  @autoreleasepool {
      return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
  }
}


================================================
FILE: Example/JTFadingInfoView.xcodeproj/project.pbxproj
================================================
// !$*UTF8*$!
{
	archiveVersion = 1;
	classes = {
	};
	objectVersion = 46;
	objects = {

/* Begin PBXBuildFile section */
		56011E751B6D7D4D00A66DB9 /* JTFadingInfoView.m in Sources */ = {isa = PBXBuildFile; fileRef = 56011E741B6D7D4D00A66DB9 /* JTFadingInfoView.m */; };
		56011E811B6D7D8400A66DB9 /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 56011E7F1B6D7D8400A66DB9 /* Info.plist */; };
		56011E821B6D7D8400A66DB9 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 56011E801B6D7D8400A66DB9 /* main.m */; };
		56011E881B6D7EC800A66DB9 /* JTFadingInfoViewTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 56011E831B6D7D9400A66DB9 /* JTFadingInfoViewTests.m */; };
		56011E891B6D7EF100A66DB9 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 56011E7C1B6D7D7900A66DB9 /* LaunchScreen.xib */; };
		56011E8A1B6D7EF800A66DB9 /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 56011E851B6D7D9E00A66DB9 /* Info.plist */; };
		56011E8F1B6D800B00A66DB9 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 56011E8E1B6D800B00A66DB9 /* Images.xcassets */; };
		56011E941B6EC49C00A66DB9 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 56011E911B6EC49C00A66DB9 /* AppDelegate.m */; };
		56D0A1831B73CB3400F0C5DE /* LogInViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 56D0A1811B73CB3400F0C5DE /* LogInViewController.m */; };
		56D0A1841B73CB3400F0C5DE /* LogInViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 56D0A1821B73CB3400F0C5DE /* LogInViewController.xib */; };
		56D0A1871B73F77C00F0C5DE /* RootViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 56D0A1861B73F77C00F0C5DE /* RootViewController.m */; };
		56D0A1921B74B3A000F0C5DE /* PropertyViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 56D0A1901B74B3A000F0C5DE /* PropertyViewController.m */; };
		56D0A1931B74B3A000F0C5DE /* PropertyViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 56D0A1911B74B3A000F0C5DE /* PropertyViewController.xib */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
		5669C3A81B67D5FE003A2B83 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 5669C3861B67D5FE003A2B83 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 5669C38D1B67D5FE003A2B83;
			remoteInfo = JTFadingInfoViewController;
		};
/* End PBXContainerItemProxy section */

/* Begin PBXFileReference section */
		56011E731B6D7D4D00A66DB9 /* JTFadingInfoView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JTFadingInfoView.h; path = JTFadingInfoView/Class/JTFadingInfoView.h; sourceTree = SOURCE_ROOT; };
		56011E741B6D7D4D00A66DB9 /* JTFadingInfoView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = JTFadingInfoView.m; path = JTFadingInfoView/Class/JTFadingInfoView.m; sourceTree = SOURCE_ROOT; };
		56011E7D1B6D7D7900A66DB9 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = JTFadingInfoView/Base.lproj/LaunchScreen.xib; sourceTree = SOURCE_ROOT; };
		56011E7F1B6D7D8400A66DB9 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = JTFadingInfoView/Info.plist; sourceTree = SOURCE_ROOT; };
		56011E801B6D7D8400A66DB9 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = JTFadingInfoView/main.m; sourceTree = SOURCE_ROOT; };
		56011E831B6D7D9400A66DB9 /* JTFadingInfoViewTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = JTFadingInfoViewTests.m; path = JTFadingInfoViewTests/JTFadingInfoViewTests.m; sourceTree = SOURCE_ROOT; };
		56011E851B6D7D9E00A66DB9 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = JTFadingInfoViewTests/Info.plist; sourceTree = SOURCE_ROOT; };
		56011E8E1B6D800B00A66DB9 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = JTFadingInfoView/Images.xcassets; sourceTree = SOURCE_ROOT; };
		56011E901B6EC49C00A66DB9 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = JTFadingInfoView/AppDelegate.h; sourceTree = SOURCE_ROOT; };
		56011E911B6EC49C00A66DB9 /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = JTFadingInfoView/AppDelegate.m; sourceTree = SOURCE_ROOT; };
		5669C38E1B67D5FE003A2B83 /* JTFadingInfoView.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = JTFadingInfoView.app; sourceTree = BUILT_PRODUCTS_DIR; };
		5669C3A71B67D5FE003A2B83 /* JTFadingInfoViewTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = JTFadingInfoViewTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
		56D0A1801B73CB3400F0C5DE /* LogInViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LogInViewController.h; path = JTFadingInfoView/LogInViewController.h; sourceTree = SOURCE_ROOT; };
		56D0A1811B73CB3400F0C5DE /* LogInViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = LogInViewController.m; path = JTFadingInfoView/LogInViewController.m; sourceTree = SOURCE_ROOT; };
		56D0A1821B73CB3400F0C5DE /* LogInViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = LogInViewController.xib; path = JTFadingInfoView/LogInViewController.xib; sourceTree = SOURCE_ROOT; };
		56D0A1851B73F77C00F0C5DE /* RootViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RootViewController.h; path = JTFadingInfoView/RootViewController.h; sourceTree = SOURCE_ROOT; };
		56D0A1861B73F77C00F0C5DE /* RootViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RootViewController.m; path = JTFadingInfoView/RootViewController.m; sourceTree = SOURCE_ROOT; };
		56D0A18F1B74B3A000F0C5DE /* PropertyViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PropertyViewController.h; path = JTFadingInfoView/PropertyViewController.h; sourceTree = SOURCE_ROOT; };
		56D0A1901B74B3A000F0C5DE /* PropertyViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PropertyViewController.m; path = JTFadingInfoView/PropertyViewController.m; sourceTree = SOURCE_ROOT; };
		56D0A1911B74B3A000F0C5DE /* PropertyViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = PropertyViewController.xib; path = JTFadingInfoView/PropertyViewController.xib; sourceTree = SOURCE_ROOT; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		5669C38B1B67D5FE003A2B83 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		5669C3A41B67D5FE003A2B83 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		5669C3851B67D5FE003A2B83 = {
			isa = PBXGroup;
			children = (
				5669C3B71B67D64B003A2B83 /* JTFadingInfoView */,
				5669C3901B67D5FE003A2B83 /* Demo */,
				5669C3AA1B67D5FE003A2B83 /* JTFadingInfoViewTests */,
				5669C38F1B67D5FE003A2B83 /* Products */,
			);
			sourceTree = "<group>";
		};
		5669C38F1B67D5FE003A2B83 /* Products */ = {
			isa = PBXGroup;
			children = (
				5669C38E1B67D5FE003A2B83 /* JTFadingInfoView.app */,
				5669C3A71B67D5FE003A2B83 /* JTFadingInfoViewTests.xctest */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		5669C3901B67D5FE003A2B83 /* Demo */ = {
			isa = PBXGroup;
			children = (
				56D0A1881B73F83E00F0C5DE /* Controller */,
				56011E901B6EC49C00A66DB9 /* AppDelegate.h */,
				56011E911B6EC49C00A66DB9 /* AppDelegate.m */,
				56011E7C1B6D7D7900A66DB9 /* LaunchScreen.xib */,
				56011E8E1B6D800B00A66DB9 /* Images.xcassets */,
				5669C3911B67D5FE003A2B83 /* Supporting Files */,
			);
			name = Demo;
			path = JTFadingInfoViewController;
			sourceTree = "<group>";
		};
		5669C3911B67D5FE003A2B83 /* Supporting Files */ = {
			isa = PBXGroup;
			children = (
				56011E7F1B6D7D8400A66DB9 /* Info.plist */,
				56011E801B6D7D8400A66DB9 /* main.m */,
			);
			name = "Supporting Files";
			sourceTree = "<group>";
		};
		5669C3AA1B67D5FE003A2B83 /* JTFadingInfoViewTests */ = {
			isa = PBXGroup;
			children = (
				56011E831B6D7D9400A66DB9 /* JTFadingInfoViewTests.m */,
				5669C3AB1B67D5FE003A2B83 /* Supporting Files */,
			);
			name = JTFadingInfoViewTests;
			path = JTFadingInfoViewControllerTests;
			sourceTree = "<group>";
		};
		5669C3AB1B67D5FE003A2B83 /* Supporting Files */ = {
			isa = PBXGroup;
			children = (
				56011E851B6D7D9E00A66DB9 /* Info.plist */,
			);
			name = "Supporting Files";
			sourceTree = "<group>";
		};
		5669C3B71B67D64B003A2B83 /* JTFadingInfoView */ = {
			isa = PBXGroup;
			children = (
				56011E731B6D7D4D00A66DB9 /* JTFadingInfoView.h */,
				56011E741B6D7D4D00A66DB9 /* JTFadingInfoView.m */,
			);
			name = JTFadingInfoView;
			path = JTFadingInfoViewController;
			sourceTree = "<group>";
		};
		56D0A1881B73F83E00F0C5DE /* Controller */ = {
			isa = PBXGroup;
			children = (
				56D0A1851B73F77C00F0C5DE /* RootViewController.h */,
				56D0A1861B73F77C00F0C5DE /* RootViewController.m */,
				56D0A1891B73F85400F0C5DE /* Children */,
			);
			name = Controller;
			sourceTree = "<group>";
		};
		56D0A1891B73F85400F0C5DE /* Children */ = {
			isa = PBXGroup;
			children = (
				56D0A1801B73CB3400F0C5DE /* LogInViewController.h */,
				56D0A1811B73CB3400F0C5DE /* LogInViewController.m */,
				56D0A1821B73CB3400F0C5DE /* LogInViewController.xib */,
				56D0A18F1B74B3A000F0C5DE /* PropertyViewController.h */,
				56D0A1901B74B3A000F0C5DE /* PropertyViewController.m */,
				56D0A1911B74B3A000F0C5DE /* PropertyViewController.xib */,
			);
			name = Children;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		5669C38D1B67D5FE003A2B83 /* JTFadingInfoView */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 5669C3B11B67D5FE003A2B83 /* Build configuration list for PBXNativeTarget "JTFadingInfoView" */;
			buildPhases = (
				5669C38A1B67D5FE003A2B83 /* Sources */,
				5669C38B1B67D5FE003A2B83 /* Frameworks */,
				5669C38C1B67D5FE003A2B83 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = JTFadingInfoView;
			productName = JTFadingInfoViewController;
			productReference = 5669C38E1B67D5FE003A2B83 /* JTFadingInfoView.app */;
			productType = "com.apple.product-type.application";
		};
		5669C3A61B67D5FE003A2B83 /* JTFadingInfoViewTests */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 5669C3B41B67D5FE003A2B83 /* Build configuration list for PBXNativeTarget "JTFadingInfoViewTests" */;
			buildPhases = (
				5669C3A31B67D5FE003A2B83 /* Sources */,
				5669C3A41B67D5FE003A2B83 /* Frameworks */,
				5669C3A51B67D5FE003A2B83 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
				5669C3A91B67D5FE003A2B83 /* PBXTargetDependency */,
			);
			name = JTFadingInfoViewTests;
			productName = JTFadingInfoViewControllerTests;
			productReference = 5669C3A71B67D5FE003A2B83 /* JTFadingInfoViewTests.xctest */;
			productType = "com.apple.product-type.bundle.unit-test";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		5669C3861B67D5FE003A2B83 /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastUpgradeCheck = 0610;
				ORGANIZATIONNAME = "Junichi Tsurukawa";
				TargetAttributes = {
					5669C38D1B67D5FE003A2B83 = {
						CreatedOnToolsVersion = 6.1;
					};
					5669C3A61B67D5FE003A2B83 = {
						CreatedOnToolsVersion = 6.1;
						TestTargetID = 5669C38D1B67D5FE003A2B83;
					};
				};
			};
			buildConfigurationList = 5669C3891B67D5FE003A2B83 /* Build configuration list for PBXProject "JTFadingInfoView" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
				Base,
			);
			mainGroup = 5669C3851B67D5FE003A2B83;
			productRefGroup = 5669C38F1B67D5FE003A2B83 /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				5669C38D1B67D5FE003A2B83 /* JTFadingInfoView */,
				5669C3A61B67D5FE003A2B83 /* JTFadingInfoViewTests */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		5669C38C1B67D5FE003A2B83 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				56011E811B6D7D8400A66DB9 /* Info.plist in Resources */,
				56011E8F1B6D800B00A66DB9 /* Images.xcassets in Resources */,
				56011E891B6D7EF100A66DB9 /* LaunchScreen.xib in Resources */,
				56D0A1931B74B3A000F0C5DE /* PropertyViewController.xib in Resources */,
				56011E8A1B6D7EF800A66DB9 /* Info.plist in Resources */,
				56D0A1841B73CB3400F0C5DE /* LogInViewController.xib in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		5669C3A51B67D5FE003A2B83 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		5669C38A1B67D5FE003A2B83 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				56011E821B6D7D8400A66DB9 /* main.m in Sources */,
				56011E751B6D7D4D00A66DB9 /* JTFadingInfoView.m in Sources */,
				56D0A1921B74B3A000F0C5DE /* PropertyViewController.m in Sources */,
				56D0A1871B73F77C00F0C5DE /* RootViewController.m in Sources */,
				56D0A1831B73CB3400F0C5DE /* LogInViewController.m in Sources */,
				56011E941B6EC49C00A66DB9 /* AppDelegate.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		5669C3A31B67D5FE003A2B83 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				56011E881B6D7EC800A66DB9 /* JTFadingInfoViewTests.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
		5669C3A91B67D5FE003A2B83 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 5669C38D1B67D5FE003A2B83 /* JTFadingInfoView */;
			targetProxy = 5669C3A81B67D5FE003A2B83 /* PBXContainerItemProxy */;
		};
/* End PBXTargetDependency section */

/* Begin PBXVariantGroup section */
		56011E7C1B6D7D7900A66DB9 /* LaunchScreen.xib */ = {
			isa = PBXVariantGroup;
			children = (
				56011E7D1B6D7D7900A66DB9 /* Base */,
			);
			name = LaunchScreen.xib;
			sourceTree = "<group>";
		};
/* End PBXVariantGroup section */

/* Begin XCBuildConfiguration section */
		5669C3AF1B67D5FE003A2B83 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				COPY_PHASE_STRIP = NO;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PREPROCESSOR_DEFINITIONS = (
					"DEBUG=1",
					"$(inherited)",
				);
				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				IPHONEOS_DEPLOYMENT_TARGET = 8.1;
				MTL_ENABLE_DEBUG_INFO = YES;
				ONLY_ACTIVE_ARCH = YES;
				SDKROOT = iphoneos;
				TARGETED_DEVICE_FAMILY = "1,2";
			};
			name = Debug;
		};
		5669C3B01B67D5FE003A2B83 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				COPY_PHASE_STRIP = YES;
				ENABLE_NS_ASSERTIONS = NO;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				IPHONEOS_DEPLOYMENT_TARGET = 8.1;
				MTL_ENABLE_DEBUG_INFO = NO;
				SDKROOT = iphoneos;
				TARGETED_DEVICE_FAMILY = "1,2";
				VALIDATE_PRODUCT = YES;
			};
			name = Release;
		};
		5669C3B21B67D5FE003A2B83 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
				INFOPLIST_FILE = "$(SRCROOT)/JTFadingInfoViewTests/Info.plist";
				IPHONEOS_DEPLOYMENT_TARGET = 7.0;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
				PRODUCT_NAME = JTFadingInfoView;
				TARGETED_DEVICE_FAMILY = 1;
			};
			name = Debug;
		};
		5669C3B31B67D5FE003A2B83 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
				INFOPLIST_FILE = "$(SRCROOT)/JTFadingInfoViewTests/Info.plist";
				IPHONEOS_DEPLOYMENT_TARGET = 7.0;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
				PRODUCT_NAME = JTFadingInfoView;
				TARGETED_DEVICE_FAMILY = 1;
			};
			name = Release;
		};
		5669C3B51B67D5FE003A2B83 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				BUNDLE_LOADER = "$(TEST_HOST)";
				FRAMEWORK_SEARCH_PATHS = (
					"$(SDKROOT)/Developer/Library/Frameworks",
					"$(inherited)",
				);
				GCC_PREPROCESSOR_DEFINITIONS = (
					"DEBUG=1",
					"$(inherited)",
				);
				INFOPLIST_FILE = JTFadingInfoViewTests/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_NAME = JTFadingInfoViewTests;
				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/JTFadingInfoView.app/JTFadingInfoView";
			};
			name = Debug;
		};
		5669C3B61B67D5FE003A2B83 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				BUNDLE_LOADER = "$(TEST_HOST)";
				FRAMEWORK_SEARCH_PATHS = (
					"$(SDKROOT)/Developer/Library/Frameworks",
					"$(inherited)",
				);
				INFOPLIST_FILE = JTFadingInfoViewTests/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_NAME = JTFadingInfoViewTests;
				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/JTFadingInfoView.app/JTFadingInfoView";
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		5669C3891B67D5FE003A2B83 /* Build configuration list for PBXProject "JTFadingInfoView" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				5669C3AF1B67D5FE003A2B83 /* Debug */,
				5669C3B01B67D5FE003A2B83 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		5669C3B11B67D5FE003A2B83 /* Build configuration list for PBXNativeTarget "JTFadingInfoView" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				5669C3B21B67D5FE003A2B83 /* Debug */,
				5669C3B31B67D5FE003A2B83 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		5669C3B41B67D5FE003A2B83 /* Build configuration list for PBXNativeTarget "JTFadingInfoViewTests" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				5669C3B51B67D5FE003A2B83 /* Debug */,
				5669C3B61B67D5FE003A2B83 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = 5669C3861B67D5FE003A2B83 /* Project object */;
}


================================================
FILE: Example/JTFadingInfoView.xcodeproj/project.xcworkspace/contents.xcworkspacedata
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
   version = "1.0">
   <FileRef
      location = "self:JTFadingInfoView.xcodeproj">
   </FileRef>
</Workspace>


================================================
FILE: Example/JTFadingInfoView.xcodeproj/project.xcworkspace/xcshareddata/JTFadingInfoView.xccheckout
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>IDESourceControlProjectFavoriteDictionaryKey</key>
	<false/>
	<key>IDESourceControlProjectIdentifier</key>
	<string>4030E531-F04B-42DF-A82F-EEE89A100072</string>
	<key>IDESourceControlProjectName</key>
	<string>JTFadingInfoView</string>
	<key>IDESourceControlProjectOriginsDictionary</key>
	<dict>
		<key>B7A2F78619A7A6FB72F487979EBEA5A525867AC0</key>
		<string>https://github.com/JunichiT/JTFadingInfoView.git</string>
	</dict>
	<key>IDESourceControlProjectPath</key>
	<string>Example/JTFadingInfoView.xcodeproj</string>
	<key>IDESourceControlProjectRelativeInstallPathDictionary</key>
	<dict>
		<key>B7A2F78619A7A6FB72F487979EBEA5A525867AC0</key>
		<string>../../..</string>
	</dict>
	<key>IDESourceControlProjectURL</key>
	<string>https://github.com/JunichiT/JTFadingInfoView.git</string>
	<key>IDESourceControlProjectVersion</key>
	<integer>111</integer>
	<key>IDESourceControlProjectWCCIdentifier</key>
	<string>B7A2F78619A7A6FB72F487979EBEA5A525867AC0</string>
	<key>IDESourceControlProjectWCConfigurations</key>
	<array>
		<dict>
			<key>IDESourceControlRepositoryExtensionIdentifierKey</key>
			<string>public.vcs.git</string>
			<key>IDESourceControlWCCIdentifierKey</key>
			<string>B7A2F78619A7A6FB72F487979EBEA5A525867AC0</string>
			<key>IDESourceControlWCCName</key>
			<string>JTFadingInfoView</string>
		</dict>
	</array>
</dict>
</plist>


================================================
FILE: Example/JTFadingInfoView.xcodeproj/project.xcworkspace/xcuserdata/DCL_JT.xcuserdatad/WorkspaceSettings.xcsettings
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>HasAskedToTakeAutomaticSnapshotBeforeSignificantChanges</key>
	<true/>
	<key>SnapshotAutomaticallyBeforeSignificantChanges</key>
	<true/>
</dict>
</plist>


================================================
FILE: Example/JTFadingInfoView.xcodeproj/xcuserdata/DCL_JT.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Bucket
   type = "1"
   version = "2.0">
   <Breakpoints>
      <BreakpointProxy
         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
         <BreakpointContent
            shouldBeEnabled = "No"
            ignoreCount = "0"
            continueAfterRunningActions = "No"
            filePath = "JTFadingInfoViewController/JTFadingInfoView.m"
            timestampString = "460150137.24507"
            startingColumnNumber = "9223372036854775807"
            endingColumnNumber = "9223372036854775807"
            startingLineNumber = "194"
            endingLineNumber = "194"
            landmarkName = "-disappearFromSuperview"
            landmarkType = "5">
         </BreakpointContent>
      </BreakpointProxy>
      <BreakpointProxy
         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
         <BreakpointContent
            shouldBeEnabled = "No"
            ignoreCount = "0"
            continueAfterRunningActions = "No"
            filePath = "JTFadingInfoViewController/JTFadingInfoView.m"
            timestampString = "460150137.24507"
            startingColumnNumber = "9223372036854775807"
            endingColumnNumber = "9223372036854775807"
            startingLineNumber = "195"
            endingLineNumber = "195"
            landmarkName = "-disappearFromSuperview"
            landmarkType = "5">
         </BreakpointContent>
      </BreakpointProxy>
      <BreakpointProxy
         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
         <BreakpointContent
            shouldBeEnabled = "Yes"
            ignoreCount = "0"
            continueAfterRunningActions = "No"
            filePath = "JTFadingInfoViewController/JTFadingInfoView.m"
            timestampString = "460150137.24507"
            startingColumnNumber = "9223372036854775807"
            endingColumnNumber = "9223372036854775807"
            startingLineNumber = "175"
            endingLineNumber = "175"
            landmarkName = "-appearWithDuration:"
            landmarkType = "5">
         </BreakpointContent>
      </BreakpointProxy>
      <BreakpointProxy
         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
         <BreakpointContent
            shouldBeEnabled = "No"
            ignoreCount = "0"
            continueAfterRunningActions = "No"
            filePath = "JTFadingInfoView/LogInViewController.m"
            timestampString = "460594874.418357"
            startingColumnNumber = "9223372036854775807"
            endingColumnNumber = "9223372036854775807"
            startingLineNumber = "44"
            endingLineNumber = "44"
            landmarkName = "-tapCloseButton:"
            landmarkType = "5">
         </BreakpointContent>
      </BreakpointProxy>
      <BreakpointProxy
         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
         <BreakpointContent
            shouldBeEnabled = "Yes"
            ignoreCount = "0"
            continueAfterRunningActions = "No"
            filePath = "JTFadingInfoView/LogInViewController.m"
            timestampString = "460594874.418357"
            startingColumnNumber = "9223372036854775807"
            endingColumnNumber = "9223372036854775807"
            startingLineNumber = "38"
            endingLineNumber = "38"
            landmarkName = "-textFieldShouldReturn:"
            landmarkType = "5">
         </BreakpointContent>
      </BreakpointProxy>
      <BreakpointProxy
         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
         <BreakpointContent
            shouldBeEnabled = "No"
            ignoreCount = "0"
            continueAfterRunningActions = "No"
            filePath = "JTFadingInfoView/LogInViewController.h"
            timestampString = "460594967.293058"
            startingColumnNumber = "9223372036854775807"
            endingColumnNumber = "9223372036854775807"
            startingLineNumber = "16"
            endingLineNumber = "16"
            landmarkName = "textField"
            landmarkType = "19">
            <Locations>
               <Location
                  shouldBeEnabled = "No"
                  ignoreCount = "0"
                  continueAfterRunningActions = "No"
                  symbolName = "-[LogInViewController textField]"
                  moduleName = "JTFadingInfoView"
                  urlString = "file:///Users/DCL_JT/Documents/%E7%8B%AC%E5%AD%A6%E7%94%A8/Obj-C/JTFadingInfoView/Example/JTFadingInfoView/LogInViewController.h"
                  timestampString = "460595016.34983"
                  startingColumnNumber = "9223372036854775807"
                  endingColumnNumber = "9223372036854775807"
                  startingLineNumber = "16"
                  endingLineNumber = "16"
                  offsetFromSymbolStart = "16">
               </Location>
               <Location
                  shouldBeEnabled = "No"
                  ignoreCount = "0"
                  continueAfterRunningActions = "No"
                  symbolName = "-[LogInViewController setTextField:]"
                  moduleName = "JTFadingInfoView"
                  urlString = "file:///Users/DCL_JT/Documents/%E7%8B%AC%E5%AD%A6%E7%94%A8/Obj-C/JTFadingInfoView/Example/JTFadingInfoView/LogInViewController.h"
                  timestampString = "460595016.350259"
                  startingColumnNumber = "9223372036854775807"
                  endingColumnNumber = "9223372036854775807"
                  startingLineNumber = "16"
                  endingLineNumber = "16"
                  offsetFromSymbolStart = "20">
               </Location>
            </Locations>
         </BreakpointContent>
      </BreakpointProxy>
      <BreakpointProxy
         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
         <BreakpointContent
            shouldBeEnabled = "Yes"
            ignoreCount = "0"
            continueAfterRunningActions = "No"
            filePath = "JTFadingInfoView/Class/JTFadingInfoView.m"
            timestampString = "460631832.007642"
            startingColumnNumber = "9223372036854775807"
            endingColumnNumber = "9223372036854775807"
            startingLineNumber = "196"
            endingLineNumber = "196"
            landmarkName = "-disappearFromSuperview"
            landmarkType = "5">
         </BreakpointContent>
      </BreakpointProxy>
      <BreakpointProxy
         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
         <BreakpointContent
            shouldBeEnabled = "Yes"
            ignoreCount = "0"
            continueAfterRunningActions = "No"
            filePath = "JTFadingInfoView/Class/JTFadingInfoView.m"
            timestampString = "460632070.407447"
            startingColumnNumber = "9223372036854775807"
            endingColumnNumber = "9223372036854775807"
            startingLineNumber = "216"
            endingLineNumber = "216"
            landmarkName = "-disappearFromSuperview"
            landmarkType = "5">
         </BreakpointContent>
      </BreakpointProxy>
      <BreakpointProxy
         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
         <BreakpointContent
            shouldBeEnabled = "Yes"
            ignoreCount = "0"
            continueAfterRunningActions = "No"
            filePath = "JTFadingInfoView/Class/JTFadingInfoView.m"
            timestampString = "460632267.945789"
            startingColumnNumber = "9223372036854775807"
            endingColumnNumber = "9223372036854775807"
            startingLineNumber = "206"
            endingLineNumber = "206"
            landmarkName = "-disappearFromSuperview"
            landmarkType = "5">
         </BreakpointContent>
      </BreakpointProxy>
      <BreakpointProxy
         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
         <BreakpointContent
            shouldBeEnabled = "No"
            ignoreCount = "0"
            continueAfterRunningActions = "No"
            filePath = "PropertyViewController.m"
            timestampString = "460632323.941004"
            startingColumnNumber = "9223372036854775807"
            endingColumnNumber = "9223372036854775807"
            startingLineNumber = "75"
            endingLineNumber = "75"
            landmarkName = "-selectDisappearValue"
            landmarkType = "5">
         </BreakpointContent>
      </BreakpointProxy>
      <BreakpointProxy
         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
         <BreakpointContent
            shouldBeEnabled = "No"
            ignoreCount = "0"
            continueAfterRunningActions = "No"
            filePath = "PropertyViewController.m"
            timestampString = "460632326.239085"
            startingColumnNumber = "9223372036854775807"
            endingColumnNumber = "9223372036854775807"
            startingLineNumber = "66"
            endingLineNumber = "66"
            landmarkName = "-selectDisappearValue"
            landmarkType = "5">
         </BreakpointContent>
      </BreakpointProxy>
      <BreakpointProxy
         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
         <BreakpointContent
            shouldBeEnabled = "No"
            ignoreCount = "0"
            continueAfterRunningActions = "No"
            filePath = "PropertyViewController.m"
            timestampString = "460632343.237484"
            startingColumnNumber = "9223372036854775807"
            endingColumnNumber = "9223372036854775807"
            startingLineNumber = "72"
            endingLineNumber = "72"
            landmarkName = "-selectDisappearValue"
            landmarkType = "5">
         </BreakpointContent>
      </BreakpointProxy>
      <BreakpointProxy
         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
         <BreakpointContent
            shouldBeEnabled = "No"
            ignoreCount = "0"
            continueAfterRunningActions = "No"
            filePath = "PropertyViewController.m"
            timestampString = "460632344.033217"
            startingColumnNumber = "9223372036854775807"
            endingColumnNumber = "9223372036854775807"
            startingLineNumber = "71"
            endingLineNumber = "71"
            landmarkName = "-selectDisappearValue"
            landmarkType = "5">
         </BreakpointContent>
      </BreakpointProxy>
   </Breakpoints>
</Bucket>


================================================
FILE: Example/JTFadingInfoView.xcodeproj/xcuserdata/DCL_JT.xcuserdatad/xcschemes/JTFadingInfoViewController.xcscheme
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
   version = "1.3">
   <BuildAction
      parallelizeBuildables = "YES"
      buildImplicitDependencies = "YES">
      <BuildActionEntries>
         <BuildActionEntry
            buildForTesting = "YES"
            buildForRunning = "YES"
            buildForProfiling = "YES"
            buildForArchiving = "YES"
            buildForAnalyzing = "YES">
            <BuildableReference
               BuildableIdentifier = "primary"
               BlueprintIdentifier = "5669C38D1B67D5FE003A2B83"
               BuildableName = "JTFadingInfoView.app"
               BlueprintName = "JTFadingInfoView"
               ReferencedContainer = "container:JTFadingInfoView.xcodeproj">
            </BuildableReference>
         </BuildActionEntry>
         <BuildActionEntry
            buildForTesting = "YES"
            buildForRunning = "YES"
            buildForProfiling = "NO"
            buildForArchiving = "NO"
            buildForAnalyzing = "YES">
            <BuildableReference
               BuildableIdentifier = "primary"
               BlueprintIdentifier = "5669C3A61B67D5FE003A2B83"
               BuildableName = "JTFadingInfoViewTests.xctest"
               BlueprintName = "JTFadingInfoViewTests"
               ReferencedContainer = "container:JTFadingInfoView.xcodeproj">
            </BuildableReference>
         </BuildActionEntry>
      </BuildActionEntries>
   </BuildAction>
   <TestAction
      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
      shouldUseLaunchSchemeArgsEnv = "YES"
      buildConfiguration = "Debug">
      <Testables>
         <TestableReference
            skipped = "NO">
            <BuildableReference
               BuildableIdentifier = "primary"
               BlueprintIdentifier = "5669C3A61B67D5FE003A2B83"
               BuildableName = "JTFadingInfoViewTests.xctest"
               BlueprintName = "JTFadingInfoViewTests"
               ReferencedContainer = "container:JTFadingInfoView.xcodeproj">
            </BuildableReference>
         </TestableReference>
      </Testables>
      <MacroExpansion>
         <BuildableReference
            BuildableIdentifier = "primary"
            BlueprintIdentifier = "5669C38D1B67D5FE003A2B83"
            BuildableName = "JTFadingInfoView.app"
            BlueprintName = "JTFadingInfoView"
            ReferencedContainer = "container:JTFadingInfoView.xcodeproj">
         </BuildableReference>
      </MacroExpansion>
   </TestAction>
   <LaunchAction
      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
      launchStyle = "0"
      useCustomWorkingDirectory = "NO"
      buildConfiguration = "Debug"
      ignoresPersistentStateOnLaunch = "NO"
      debugDocumentVersioning = "YES"
      allowLocationSimulation = "YES">
      <BuildableProductRunnable>
         <BuildableReference
            BuildableIdentifier = "primary"
            BlueprintIdentifier = "5669C38D1B67D5FE003A2B83"
            BuildableName = "JTFadingInfoView.app"
            BlueprintName = "JTFadingInfoView"
            ReferencedContainer = "container:JTFadingInfoView.xcodeproj">
         </BuildableReference>
      </BuildableProductRunnable>
      <AdditionalOptions>
      </AdditionalOptions>
   </LaunchAction>
   <ProfileAction
      shouldUseLaunchSchemeArgsEnv = "YES"
      savedToolIdentifier = ""
      useCustomWorkingDirectory = "NO"
      buildConfiguration = "Release"
      debugDocumentVersioning = "YES">
      <MacroExpansion>
         <BuildableReference
            BuildableIdentifier = "primary"
            BlueprintIdentifier = "5669C38D1B67D5FE003A2B83"
            BuildableName = "JTFadingInfoView.app"
            BlueprintName = "JTFadingInfoView"
            ReferencedContainer = "container:JTFadingInfoView.xcodeproj">
         </BuildableReference>
      </MacroExpansion>
   </ProfileAction>
   <AnalyzeAction
      buildConfiguration = "Debug">
   </AnalyzeAction>
   <ArchiveAction
      buildConfiguration = "Release"
      revealArchiveInOrganizer = "YES">
   </ArchiveAction>
</Scheme>


================================================
FILE: Example/JTFadingInfoView.xcodeproj/xcuserdata/DCL_JT.xcuserdatad/xcschemes/xcschememanagement.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>SuppressBuildableAutocreation</key>
	<dict>
		<key>5669C38D1B67D5FE003A2B83</key>
		<dict>
			<key>primary</key>
			<true/>
		</dict>
		<key>5669C3A61B67D5FE003A2B83</key>
		<dict>
			<key>primary</key>
			<true/>
		</dict>
	</dict>
</dict>
</plist>


================================================
FILE: Example/JTFadingInfoViewTests/Info.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>CFBundleDevelopmentRegion</key>
	<string>en</string>
	<key>CFBundleExecutable</key>
	<string>$(EXECUTABLE_NAME)</string>
	<key>CFBundleIcons</key>
	<dict/>
	<key>CFBundleIcons~ipad</key>
	<dict/>
	<key>CFBundleIdentifier</key>
	<string>Junichi.$(PRODUCT_NAME:rfc1034identifier)</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string>$(PRODUCT_NAME)</string>
	<key>CFBundlePackageType</key>
	<string>BNDL</string>
	<key>CFBundleShortVersionString</key>
	<string>1.0</string>
	<key>CFBundleSignature</key>
	<string>????</string>
	<key>CFBundleVersion</key>
	<string>1</string>
	<key>UILaunchStoryboardName</key>
	<string>LaunchScreen</string>
	<key>UISupportedInterfaceOrientations</key>
	<array>
		<string>UIInterfaceOrientationPortrait</string>
	</array>
</dict>
</plist>


================================================
FILE: Example/JTFadingInfoViewTests/JTFadingInfoViewTests.m
================================================
//
//  JTFadingInfoViewTests.m
//  JTFadingInfoViewTests
//
//  Created by DCL_JT on 2015/07/29.
//  Copyright (c) 2015年 Junichi Tsurukawa. All rights reserved.
//

#import <UIKit/UIKit.h>
#import <XCTest/XCTest.h>

@interface JTFadingInfoViewTests : XCTestCase

@end

@implementation JTFadingInfoViewTests

- (void)setUp {
    [super setUp];
    // Put setup code here. This method is called before the invocation of each test method in the class.
}

- (void)tearDown {
    // Put teardown code here. This method is called after the invocation of each test method in the class.
    [super tearDown];
}

- (void)testExample {
    // This is an example of a functional test case.
    XCTAssert(YES, @"Pass");
}

- (void)testPerformanceExample {
    // This is an example of a performance test case.
    [self measureBlock:^{
        // Put the code you want to measure the time of here.
    }];
}

@end


================================================
FILE: JTFadingInfoView.podspec
================================================
#
# Be sure to run `pod lib lint JTFadingInfoView.podspec' to ensure this is a
# valid spec and remove all comments before submitting the spec.
#
# Any lines starting with a # are optional, but encouraged
#
# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html
#

Pod::Spec.new do |s|
  s.name             = "JTFadingInfoView"
  s.version          = "1.0.2"
  s.summary          = "A UIButton-based view with fade in/out animation features."
  s.homepage         = "https://github.com/JunichiT/JTFadingInfoView"
  s.screenshots      = "https://raw.githubusercontent.com/JunichiT/JTFadingInfoView/master/Docs/simple.gif"
  s.license          = 'MIT'
  s.author           = { "JunichiTsurukawa" => "j.tsurukawa@gmail.com" }
  s.source           = { :git => "https://github.com/JunichiT/JTFadingInfoView.git", :tag => s.version.to_s }

  s.platform     = :ios, '7.0'
  s.requires_arc = true

  s.source_files = 'Pod/Classes/'
  s.resource_bundles = {
    'JTFadingInfoView' => ['Pod/Assets/*.png']
  }
end


================================================
FILE: LICENSE
================================================
The MIT License (MIT)
Copyright (c) 2015 Junichi Tsurukawa <j.tsurukawa@gmail.com>. All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.


================================================
FILE: Pod/Assets/.gitkeep
================================================


================================================
FILE: Pod/Classes/.gitkeep
================================================


================================================
FILE: Pod/Classes/JTFadingInfoView.h
================================================
//
//  JTFadingInfoView.h
//  JTFadingInfoView
//
//  Created by Junichi Tsurukawa on 2015/07/29.
//
//  The MIT License (MIT)
//  Copyright (c) 2015 Junichi Tsurukawa. All rights reserved.
//
//  Permission is hereby granted, free of charge, to any person obtaining a copy
//  of this software and associated documentation files (the "Software"), to deal
//  in the Software without restriction, including without limitation the rights
//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
//  copies of the Software, and to permit persons to whom the Software is
//  furnished to do so, subject to the following conditions:
//
//  The above copyright notice and this permission notice shall be included in
//  all copies or substantial portions of the Software.
//
//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
//  THE SOFTWARE.

#import <UIKit/UIKit.h>

#pragma mark - Fade in/out options
typedef enum {
  JTFadeInDirectionFromAbove = 1,
  JTFadeInDirectionFromBelow,
  JTFadeInDirectionFromLeft,
  JTFadeInDirectionFromRight,
  JTFadeInDirectionFromPresentPosition
} JTFadeInDirectionType;

typedef enum {
  JTFadeOutDirectionToAbove = 1,
  JTFadeOutDirectionToBelow,
  JTFadeOutDirectionToLeft,
  JTFadeOutDirectionToRight,
  JTFadeOutDirectionToPresentPosition
} JTFadeOutDirectionType;

typedef enum {
  JTDisplayDurationInfinity
} JTDisplayDurationOption;

@interface JTFadingInfoView : UIButton
#pragma mark - Initializer
/**
 *  Initializes a JTFadingInfoView with a frame and label to be shown on.
 *
 *  @param frame A CGRect value for this view's frame
 *  @param label A NSString value to use as this view's label
 *
 *  @return A JTFadingInfoView with frame and label
 */
- (id)initWithFrame:(CGRect)frame label:(NSString *)label;

#pragma mark - Instance Methods
/**
 *  appearWithDuration:duration has a role to display JTFadingInfoView for specified time
 *
 *  @param duration A NSTimeInterval value as a duration time to display JTFadingInfoView
 */
- (void)appearWithDuration: (NSTimeInterval)duration;

/**
 *  disappearFromSuperview has a role to disappear JTFadingInfoView with fading animation.
 *
 */
- (void)disappearFromSuperview;

#pragma mark - Properties
#pragma Shadow
/** A Boolean value for whether the shadow effect is enabled or not. */
@property BOOL isShadowEnabled;
/** A Boolean value for whether the animation effect is enabled or not. */
@property BOOL isAnimationEnabled;

#pragma Animatoins
/** A float represeting the time for displaying this view itself (second). If <= 0, view will not disappear */
@property float displayDuration;
/** A float representing the time the view is appeared by (second). */
@property float appearingDuration;
/** A float representing the time the view is disappeared by (second). */
@property float disappearingDuration;
/** A float representing how much the view moves during fading in/out. */
@property float animationMovement;
/** A JTFadeInType representing from which direction the view appears */
@property JTFadeInDirectionType fadeInDirection;
/** A JTFadeInType representing to which direction the view will be disappeared */
@property JTFadeOutDirectionType fadeOutDirection;

@end


================================================
FILE: Pod/Classes/JTFadingInfoView.m
================================================
//
//  JTFadingInfoView.m
//  JTFadingInfoView
//
//  Created by Junichi Tsurukawa on 2015/07/29.
//
//  The MIT License (MIT)
//  Copyright (c) 2015 Junichi Tsurukawa. All rights reserved.
//
//  Permission is hereby granted, free of charge, to any person obtaining a copy
//  of this software and associated documentation files (the "Software"), to deal
//  in the Software without restriction, including without limitation the rights
//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
//  copies of the Software, and to permit persons to whom the Software is
//  furnished to do so, subject to the following conditions:
//
//  The above copyright notice and this permission notice shall be included in
//  all copies or substantial portions of the Software.
//
//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
//  THE SOFTWARE.

#import "JTFadingInfoView.h"
#import <QuartzCore/QuartzCore.h>

@interface JTFadingInfoView ()

@property CALayer *backgroundShadowLayer;

@end

@implementation JTFadingInfoView


- (id)initWithFrame:(CGRect)frame label:(NSString *)label
{
  self = [self initWithFrame:frame];
  [self setTitle:label forState:UIControlStateNormal];
  return self;
}

- (id)initWithFrame:(CGRect)frame
{
  self = [super initWithFrame:frame];
  
  //NSLog(@"%@", NSStringFromCGRect(self.frame));
  
  // Initial value for each property
  self.isAnimationEnabled = YES;
  self.isShadowEnabled = YES;
  self.backgroundColor = [UIColor colorWithRed:0.f/255.f green:140.f/255.f blue:250.f/255.f alpha:1.0f];
  self.titleLabel.textColor = [UIColor whiteColor];
  self.titleLabel.textAlignment = NSTextAlignmentCenter;
  self.alpha = 0.0f;
  self.titleLabel.lineBreakMode = NSLineBreakByWordWrapping;
  self.fadeInDirection = JTFadeInDirectionFromBelow;
  self.fadeOutDirection = JTFadeOutDirectionToBelow;
  self.animationMovement = 30.0f;
  self.appearingDuration = 1.0f;
  self.displayDuration = 3.0f;
  self.disappearingDuration = 1.0f;

  // Add touch behavior
  self.userInteractionEnabled = YES;
  self.tag = 100;
  
  return self;
}

// tap event listener
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
  UITouch *touch = [[event allTouches] anyObject];
  //NSLog(@"tap pos: %@", touch.)
  if ( touch.view.tag == self.tag ){
    //NSLog(@"Do STG");
    [self disappearFromSuperview];
  }
}

// called when addSubview method is fired
- (void)willMoveToSuperview:(UIView *)newSuperview
{
  //NSLog(@"willMoveToSuperview called");
  [self appearWithDuration:self.displayDuration];
}

// appear behavior with animation
- (void)appear
{
  // Corner Radius
  self.layer.cornerRadius = 3.0f;
  
  // Add shadow layer like material design
  if (self.isShadowEnabled) {
    CALayer *caLayer = self.layer;
    caLayer.frame = self.frame;
    caLayer.shadowRadius = 3.0f;
    caLayer.shadowOpacity = 0.4f;
    caLayer.shadowOffset = CGSizeMake(0.0f, 3.0f);
    caLayer.shouldRasterize = YES;
    // retina screen resolution
    [caLayer setRasterizationScale:[[UIScreen mainScreen] scale]];
    [caLayer setShouldRasterize:YES];
  }
  
  // Animation
  //NSLog(@"%d", self.isAnimationEnabled);
  // Do animation if the property selected YES
  if (self.isAnimationEnabled) {
    
    //NSLog(@"animation appear");
    
    CGRect appearFrom = self.frame;
    CGRect pos;
    
    // fade in behaviors with each property
    switch (self.fadeInDirection) {
      case JTFadeInDirectionFromAbove:
        //NSLog(@"JTFadeInDirectionFromBelow");
        appearFrom.origin.y -= self.animationMovement;
        self.frame = appearFrom;
        pos = self.frame;
        pos.origin.y += self.animationMovement;
        break;
        
      case JTFadeInDirectionFromBelow:
        //NSLog(@"JTFadeInDirectionFromBelow");
        appearFrom.origin.y += self.animationMovement;
        self.frame = appearFrom;
        pos = self.frame;
        pos.origin.y -= self.animationMovement;
        break;
        
      case JTFadeInDirectionFromLeft:
        //NSLog(@"JTFadeInDirectionFromLeft");
        appearFrom.origin.x -= self.animationMovement;
        self.frame = appearFrom;
        pos = self.frame;
        pos.origin.x += self.animationMovement;
        break;
        
      case JTFadeInDirectionFromRight:
        //NSLog(@"JTFadeInDirectionFromRight");
        appearFrom.origin.x += self.animationMovement;
        self.frame = appearFrom;
        pos = self.frame;
        pos.origin.x -= self.animationMovement;
        break;
        
      case JTFadeInDirectionFromPresentPosition:
        //NSLog(@"JTFadeInDirectionFromPresentPosition");
        self.frame = appearFrom;
        pos = self.frame;
        break;
        
      default:
        break;
    }
    
    // animation function
    [UIView animateWithDuration: self.appearingDuration
                          delay: 0.5f
                        options: UIViewAnimationOptionLayoutSubviews
                     animations: ^{
                       self.alpha = 1.0f;
                       self.frame = pos;
                     }
                     completion:^(BOOL finished) {
                       //NSLog(@"complete");
                     }];
  }
  // when the property self.isAnimationEnabled is false
  else {
    // just set the aplha value to 1.0 immediately
    self.alpha = 1.0f;
  }
}

// appear with display duration
- (void)appearWithDuration: (NSTimeInterval)duration
{
  [self appear];
  if ( duration > 0 || duration != JTDisplayDurationInfinity) {
    [self performSelector:@selector(disappearFromSuperview) withObject:nil afterDelay:duration];
  }
}

// disappear behavior with animation
- (void)disappearFromSuperview
{
  CGRect pos = self.frame;
  
  // fade out behaviors with each property
  switch (self.fadeOutDirection) {
    case JTFadeOutDirectionToAbove:
      //NSLog(@"JTFadeOutDirectionToAbove");
      pos.origin.y -= self.animationMovement;
      break;
      
    case JTFadeOutDirectionToBelow:
      //NSLog(@"JTFadeOutDirectionToBelow");
      pos.origin.y += self.animationMovement;
      break;
      
    case JTFadeOutDirectionToLeft:
      //NSLog(@"JTFadeOutDirectionToLeft");
      pos.origin.x -= self.animationMovement;
      break;
      
    case JTFadeOutDirectionToRight:
      //NSLog(@"JTFadeOutDirectionToRight");
      pos.origin.x += self.animationMovement;
      break;
      
    case JTFadeOutDirectionToPresentPosition:
      //NSLog(@"JTFadeOutDirectionToPresentPosition");
      break;
      
    default:
      break;
  }
  
  // Do animation if the property selected YES
  if (self.isAnimationEnabled) {
    [UIView animateWithDuration: self.disappearingDuration
                          delay: self.appearingDuration
                        options: UIViewAnimationOptionLayoutSubviews
                     animations: ^{
                       self.alpha = 0.0f;
                       self.frame = pos;
                     }
                     completion:^(BOOL finished) {
                       //NSLog(@"complete rem");
                       [self removeFromSuperview];
                     }];
  }
  // when self.isAnimationEnabled is false
  else{
    // just set aplha to 0 to be invisible, and removeFromSuperview
    self.alpha = 0.0f;
    [self removeFromSuperview];
  }
}


@end



================================================
FILE: README.md
================================================
![Title](Docs/JTFadingInfoView_Title.png)

# JTFadingInfoView

[![Version](https://img.shields.io/cocoapods/v/JTFadingInfoView.svg?style=flat)](http://cocoadocs.org/docsets/JTFadingInfoView)
[![License](https://img.shields.io/cocoapods/l/JTFadingInfoView.svg?style=flat)](http://cocoadocs.org/docsets/JTFadingInfoView)
[![Platform](https://img.shields.io/cocoapods/p/JTFadingInfoView.svg?style=flat)](http://cocoadocs.org/docsets/JTFadingInfoView)

## Overview
`JTFadingInfoView` is google's material design like notification view with smooth fade in/out animation features, based on UIButton subclass.

You can select fade in/out direction as you like. Also, customizable properties can be tweaked behaviors and enhance your application UI cool.

With this library, you can easily implement floating in-app notification to your app, such as login success/fail notification messages.
 
 ![Screen shot](Docs/loginDemo.gif)
 
## Installation
JTFadingInfoView is available on CocoaPods.

You can use this library by adding the following command onto your Podfile:

```ruby
pod "JTFadingInfoView"
```

## Usage

The simplest setup: 

```objective-c
  CGRect frame = CGRectMake(150, 200, 150, 50);
  NSString *label = @"JTFadingInfoView!";
  JTFadingInfoView *infoView = [[JTFadingInfoView alloc] initWithFrame:frame
                                                                 label:label];
  [self.view addSubview:infoView];
```

![Screen shot](Docs/simple.gif)

### Customize Behaviors
JTFadingInfoView has parameters to customize behaviors as you like:

```objective-c
/** A float represeting the time for displaying this view itself (second).
/** If <= 0, view will not disappear */
@property float displayDuration;
/** A float representing the time the view is appeared by (second). */
@property float appearingDuration;
/** A float representing the time the view is disappeared by (second). */
@property float disappearingDuration;
/** A float representing how much the view moves during fading in/out. */
@property float animationMovement;
/** A JTFadeInType representing from which direction the view appears */
@property JTFadeInDirectionType fadeInDirection;
/** A JTFadeInType representing to which direction the view will be disappeared */
@property JTFadeOutDirectionType fadeOutDirection;
```

![Screen shot](Docs/parameterDemo.gif)

## Change History
### 1.0.0
- First release 

### 1.0.1
- Bug Fix

### 1.0.2
- Bug Fix

## Requirements
iOS 7.0 or later

## Author
Junichi Tsurukawa <j.tsurukawa@gmail.com>

## License
JTFadingInfoView is available under the MIT license.
Download .txt
gitextract_gdlg0pfg/

├── .idea/
│   ├── .name
│   ├── JTFadingInfoViewController.iml
│   ├── codeStyleSettings.xml
│   ├── encodings.xml
│   ├── misc.xml
│   ├── modules.xml
│   ├── scopes/
│   │   └── scope_settings.xml
│   ├── vcs.xml
│   ├── workspace.xml
│   └── xcode.xml
├── Example/
│   ├── JTFadingInfoView/
│   │   ├── AppDelegate.h
│   │   ├── AppDelegate.m
│   │   ├── Base.lproj/
│   │   │   └── LaunchScreen.xib
│   │   ├── Class/
│   │   │   ├── JTFadingInfoView.h
│   │   │   └── JTFadingInfoView.m
│   │   ├── Images.xcassets/
│   │   │   ├── AppIcon.appiconset/
│   │   │   │   └── Contents.json
│   │   │   ├── LaunchImage.launchimage/
│   │   │   │   └── Contents.json
│   │   │   ├── cyan-pentagonal-background.imageset/
│   │   │   │   └── Contents.json
│   │   │   └── icon.imageset/
│   │   │       └── Contents.json
│   │   ├── Info.plist
│   │   ├── LogInViewController.h
│   │   ├── LogInViewController.m
│   │   ├── LogInViewController.xib
│   │   ├── PropertyViewController.h
│   │   ├── PropertyViewController.m
│   │   ├── PropertyViewController.xib
│   │   ├── RootViewController.h
│   │   ├── RootViewController.m
│   │   └── main.m
│   ├── JTFadingInfoView.xcodeproj/
│   │   ├── project.pbxproj
│   │   ├── project.xcworkspace/
│   │   │   ├── contents.xcworkspacedata
│   │   │   ├── xcshareddata/
│   │   │   │   └── JTFadingInfoView.xccheckout
│   │   │   └── xcuserdata/
│   │   │       └── DCL_JT.xcuserdatad/
│   │   │           └── WorkspaceSettings.xcsettings
│   │   └── xcuserdata/
│   │       └── DCL_JT.xcuserdatad/
│   │           ├── xcdebugger/
│   │           │   └── Breakpoints_v2.xcbkptlist
│   │           └── xcschemes/
│   │               ├── JTFadingInfoViewController.xcscheme
│   │               └── xcschememanagement.plist
│   └── JTFadingInfoViewTests/
│       ├── Info.plist
│       └── JTFadingInfoViewTests.m
├── JTFadingInfoView.podspec
├── LICENSE
├── Pod/
│   ├── Assets/
│   │   └── .gitkeep
│   └── Classes/
│       ├── .gitkeep
│       ├── JTFadingInfoView.h
│       └── JTFadingInfoView.m
└── README.md
Download .txt
SYMBOL INDEX (6 symbols across 2 files)

FILE: Example/JTFadingInfoView/Class/JTFadingInfoView.h
  type JTFadeInDirectionType (line 31) | typedef enum {
  type JTFadeOutDirectionType (line 39) | typedef enum {
  type JTDisplayDurationOption (line 47) | typedef enum {

FILE: Pod/Classes/JTFadingInfoView.h
  type JTFadeInDirectionType (line 31) | typedef enum {
  type JTFadeOutDirectionType (line 39) | typedef enum {
  type JTDisplayDurationOption (line 47) | typedef enum {
Condensed preview — 45 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (150K chars).
[
  {
    "path": ".idea/.name",
    "chars": 26,
    "preview": "JTFadingInfoViewController"
  },
  {
    "path": ".idea/JTFadingInfoViewController.iml",
    "chars": 282,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<module type=\"CIDR_MODULE\" version=\"4\">\n  <component name=\"NewModuleRootManager\">"
  },
  {
    "path": ".idea/codeStyleSettings.xml",
    "chars": 2195,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"ProjectCodeStyleSettingsManager\">\n    <o"
  },
  {
    "path": ".idea/encodings.xml",
    "chars": 164,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"Encoding\" useUTFGuessing=\"true\" native2A"
  },
  {
    "path": ".idea/misc.xml",
    "chars": 125,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"ProjectRootManager\" version=\"2\" />\n</pro"
  },
  {
    "path": ".idea/modules.xml",
    "chars": 304,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"ProjectModuleManager\">\n    <modules>\n   "
  },
  {
    "path": ".idea/scopes/scope_settings.xml",
    "chars": 139,
    "preview": "<component name=\"DependencyValidationManager\">\n  <state>\n    <option name=\"SKIP_IMPORT_STATEMENTS\" value=\"false\" />\n  </"
  },
  {
    "path": ".idea/vcs.xml",
    "chars": 180,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"VcsDirectoryMappings\">\n    <mapping dire"
  },
  {
    "path": ".idea/workspace.xml",
    "chars": 16213,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"ChangeListManager\">\n    <list default=\"t"
  },
  {
    "path": ".idea/xcode.xml",
    "chars": 174,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"XcodeMetaData\" PROJECT_FILE=\"$PROJECT_DI"
  },
  {
    "path": "Example/JTFadingInfoView/AppDelegate.h",
    "chars": 367,
    "preview": "//\n//  AppDelegate.h\n//  JTFadingInfoViewController\n//\n//  Created by DCL_JT on 2015/07/29.\n//  Copyright (c) 2015年 Juni"
  },
  {
    "path": "Example/JTFadingInfoView/AppDelegate.m",
    "chars": 2529,
    "preview": "//\n//  AppDelegate.m\n//  JTFadingInfoViewController\n//\n//  Created by DCL_JT on 2015/07/29.\n//  Copyright (c) 2015年 Juni"
  },
  {
    "path": "Example/JTFadingInfoView/Base.lproj/LaunchScreen.xib",
    "chars": 3756,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" versi"
  },
  {
    "path": "Example/JTFadingInfoView/Class/JTFadingInfoView.h",
    "chars": 3617,
    "preview": "//\n//  JTFadingInfoView.h\n//  JTFadingInfoView\n//\n//  Created by Junichi Tsurukawa on 2015/07/29.\n//\n//  The MIT License"
  },
  {
    "path": "Example/JTFadingInfoView/Class/JTFadingInfoView.m",
    "chars": 7716,
    "preview": "//\n//  JTFadingInfoView.m\n//  JTFadingInfoView\n//\n//  Created by Junichi Tsurukawa on 2015/07/29.\n//\n//  The MIT License"
  },
  {
    "path": "Example/JTFadingInfoView/Images.xcassets/AppIcon.appiconset/Contents.json",
    "chars": 1077,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"29x29\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\""
  },
  {
    "path": "Example/JTFadingInfoView/Images.xcassets/LaunchImage.launchimage/Contents.json",
    "chars": 1036,
    "preview": "{\n  \"images\" : [\n    {\n      \"orientation\" : \"portrait\",\n      \"idiom\" : \"ipad\",\n      \"minimum-system-version\" : \"7.0\","
  },
  {
    "path": "Example/JTFadingInfoView/Images.xcassets/cyan-pentagonal-background.imageset/Contents.json",
    "chars": 435,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"cyan-pentagonal-background"
  },
  {
    "path": "Example/JTFadingInfoView/Images.xcassets/icon.imageset/Contents.json",
    "chars": 369,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"icon.png\"\n    },\n    {\n   "
  },
  {
    "path": "Example/JTFadingInfoView/Info.plist",
    "chars": 1452,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "Example/JTFadingInfoView/LogInViewController.h",
    "chars": 571,
    "preview": "//\n//  LogInViewController.h\n//  JTFadingInfoView\n//\n//  Created by DCL_JT on 2015/08/07.\n//  Copyright (c) 2015年 Junich"
  },
  {
    "path": "Example/JTFadingInfoView/LogInViewController.m",
    "chars": 2038,
    "preview": "//\n//  LogInViewController.m\n//  JTFadingInfoView\n//\n//  Created by DCL_JT on 2015/08/07.\n//  Copyright (c) 2015年 Junich"
  },
  {
    "path": "Example/JTFadingInfoView/LogInViewController.xib",
    "chars": 10068,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" versi"
  },
  {
    "path": "Example/JTFadingInfoView/PropertyViewController.h",
    "chars": 725,
    "preview": "//\n//  PropertyViewController.h\n//  JTFadingInfoView\n//\n//  Created by DCL_JT on 2015/08/07.\n//  Copyright (c) 2015年 Jun"
  },
  {
    "path": "Example/JTFadingInfoView/PropertyViewController.m",
    "chars": 3597,
    "preview": "//\n//  PropertyViewController.m\n//  JTFadingInfoView\n//\n//  Created by DCL_JT on 2015/08/07.\n//  Copyright (c) 2015年 Jun"
  },
  {
    "path": "Example/JTFadingInfoView/PropertyViewController.xib",
    "chars": 18265,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" versi"
  },
  {
    "path": "Example/JTFadingInfoView/RootViewController.h",
    "chars": 237,
    "preview": "//\n//  RootViewController.h\n//  JTFadingInfoView\n//\n//  Created by DCL_JT on 2015/08/07.\n//  Copyright (c) 2015年 Junichi"
  },
  {
    "path": "Example/JTFadingInfoView/RootViewController.m",
    "chars": 3178,
    "preview": "//\n//  RootViewController.m\n//  JTFadingInfoView\n//\n//  Created by DCL_JT on 2015/08/07.\n//  Copyright (c) 2015年 Junichi"
  },
  {
    "path": "Example/JTFadingInfoView/main.m",
    "chars": 354,
    "preview": "//\n//  main.m\n//  JTFadingInfoViewController\n//\n//  Created by DCL_JT on 2015/07/29.\n//  Copyright (c) 2015年 Junichi Tsu"
  },
  {
    "path": "Example/JTFadingInfoView.xcodeproj/project.pbxproj",
    "chars": 21333,
    "preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 46;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
  },
  {
    "path": "Example/JTFadingInfoView.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "chars": 161,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:JTFadingInfoVie"
  },
  {
    "path": "Example/JTFadingInfoView.xcodeproj/project.xcworkspace/xcshareddata/JTFadingInfoView.xccheckout",
    "chars": 1532,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "Example/JTFadingInfoView.xcodeproj/project.xcworkspace/xcuserdata/DCL_JT.xcuserdatad/WorkspaceSettings.xcsettings",
    "chars": 332,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "Example/JTFadingInfoView.xcodeproj/xcuserdata/DCL_JT.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist",
    "chars": 10389,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Bucket\n   type = \"1\"\n   version = \"2.0\">\n   <Breakpoints>\n      <BreakpointProxy"
  },
  {
    "path": "Example/JTFadingInfoView.xcodeproj/xcuserdata/DCL_JT.xcuserdatad/xcschemes/JTFadingInfoViewController.xcscheme",
    "chars": 4261,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n "
  },
  {
    "path": "Example/JTFadingInfoView.xcodeproj/xcuserdata/DCL_JT.xcuserdatad/xcschemes/xcschememanagement.plist",
    "chars": 427,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "Example/JTFadingInfoViewTests/Info.plist",
    "chars": 1001,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "Example/JTFadingInfoViewTests/JTFadingInfoViewTests.m",
    "chars": 902,
    "preview": "//\n//  JTFadingInfoViewTests.m\n//  JTFadingInfoViewTests\n//\n//  Created by DCL_JT on 2015/07/29.\n//  Copyright (c) 2015年"
  },
  {
    "path": "JTFadingInfoView.podspec",
    "chars": 1033,
    "preview": "#\n# Be sure to run `pod lib lint JTFadingInfoView.podspec' to ensure this is a\n# valid spec and remove all comments befo"
  },
  {
    "path": "LICENSE",
    "chars": 1129,
    "preview": "The MIT License (MIT)\nCopyright (c) 2015 Junichi Tsurukawa <j.tsurukawa@gmail.com>. All rights reserved.\n\nPermission is "
  },
  {
    "path": "Pod/Assets/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Pod/Classes/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Pod/Classes/JTFadingInfoView.h",
    "chars": 3617,
    "preview": "//\n//  JTFadingInfoView.h\n//  JTFadingInfoView\n//\n//  Created by Junichi Tsurukawa on 2015/07/29.\n//\n//  The MIT License"
  },
  {
    "path": "Pod/Classes/JTFadingInfoView.m",
    "chars": 7715,
    "preview": "//\n//  JTFadingInfoView.m\n//  JTFadingInfoView\n//\n//  Created by Junichi Tsurukawa on 2015/07/29.\n//\n//  The MIT License"
  },
  {
    "path": "README.md",
    "chars": 2587,
    "preview": "![Title](Docs/JTFadingInfoView_Title.png)\n\n# JTFadingInfoView\n\n[![Version](https://img.shields.io/cocoapods/v/JTFadingIn"
  }
]

About this extraction

This page contains the full source code of the JunichiT/JTFadingInfoView GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 45 files (134.4 KB), approximately 38.6k tokens, and a symbol index with 6 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!