しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

Macでの.bash_profileと.bashrcの違いを調べる

両者の違いを調べてみました。
それぞれに以下のような記述をして動作を確認してみました。

.bashrc

echo ".bashrc"

.bash_profile

echo ".bash_profile"

新規タブや新規ウインドウを開いた時はbash_profileだけ出力されました。

f:id:llcc:20160630230116p:plain

逆にbashコマンドを実行した時は.bashrcだけ読まれるようです。

f:id:llcc:20160630230152p:plain

GoogleFormで簡単にフォームを作成してみる

GoogleFormを試してみました。
まずは以下のサイトからフォームを作成します。

www.google.com

このように質問をどんどん追加していく事で作っていきます。

f:id:llcc:20160630223932p:plain

ラジオボタン以外の回答方式を作る事もできます。

f:id:llcc:20160630224338p:plain

作り終わったら右上の送信ボタンから質問を送信します。

f:id:llcc:20160630224444p:plain

送信された側は以下のような表示になります。

f:id:llcc:20160630224534p:plain

回答が終わると以下の表示になります。

f:id:llcc:20160630224602p:plain

この回答は質問作成画面にも反映されます。

f:id:llcc:20160630224631p:plain

NSBundleのpathForResourceがnilを返す原因

ファイルの追加をしたのにパスが取得できない事がありました。

NSBundle.mainBundle().pathForResource("aaa", ofType: "3gp")

確認した所、リソースとして登録されてない事が原因でした。
プロジェクト設定の「Build Phases」→「Copy Bundle Resources」で該当ファイルの追加をしたらパスを取得できるようになりました。

f:id:llcc:20160626122357p:plain

pod installでRealm Swiftがインストールできない時の対処法

以下のようなエラーが出た時の対処法です。

[!] /bin/bash -c
set -e
sh build.sh cocoapods-setup

core is not a symlink. Deleting...
Downloading dependency: core 1.1.1
core/librealm-macosx-dbg.a: bzip decompression failed
tar: Error exit delayed from previous errors.

自分の場合はRealm関連の一時ファイルがおかしくなっていたようで、以下コマンドでリセットしたら直りました。
他エラーの対処法として手動で一時ファイル入れたりしていた事が原因かと思われます。

rm -rf $TMPDIR/core_bin/core-*

LTMorphingLabelでUILabelをモーフィング

LTMorphingLabelというライブラリを使ってUILabelをおしゃれに変化させてみました。

github.com

まずはStoryboardにUILabelを設置します。

f:id:llcc:20160624231955p:plain

設置したUILabelのクラスをLTMorphingLabelにします。

f:id:llcc:20160624232129p:plain

あとはテキストをセットするだけでラベルがモーフィング付きで変化します。

import UIKit
import LTMorphingLabel

class ViewController: UIViewController {
    @IBOutlet weak var label: LTMorphingLabel!
    
    override func viewDidAppear(animated: Bool) {
        label.text = "Changed!!"
    }
}

f:id:llcc:20160624233145g:plain

エフェクトを変更する事もできます。

import UIKit
import LTMorphingLabel

class ViewController: UIViewController {
    @IBOutlet weak var label: LTMorphingLabel!
    
    override func viewDidAppear(animated: Bool) {
        label.morphingEffect = .Fall
        label.text = "Changed!!"
    }
}

使えるエフェクトは以下の通りです。

@objc public enum LTMorphingEffect: Int, CustomStringConvertible {
    case Scale = 0
    case Evaporate
    case Fall
    case Pixelate
    case Sparkle
    case Burn
    case Anvil
}

RAMAnimatedTabBarControllerでUITabBarControllerをおしゃれにする

こちらのライブラリを使ってタブバー押下のアニメーションを追加してみました。

github.com

CocoaPodsを使ってインストールします。

use_frameworks!

pod 'RAMAnimatedTabBarController'

最初にStoryboardでUITabBarControllerを作成します。

f:id:llcc:20160623233937p:plain

次にUITabBarControllerのクラスをRAMAnimatedTabBarControllerにします。

f:id:llcc:20160623234008p:plain

それぞれのUITabBarItemをRAMAnimatedTabBarItemクラスにします。

f:id:llcc:20160623234104p:plain

次にタブバーにアイコン画像を設置します、画像は以下サイトのものを利用しました。

http://www.iconbeast.com/free/

f:id:llcc:20160623234354p:plain

最後にアニメーションをUITabBarItemに紐付けます。
まずはUITabBarItemのあるUIViewControllerにNSObjectを設置します。

f:id:llcc:20160623234448p:plain

そしてそのクラスを以下のどれかにします。

RAMBounceAnimation
RAMLeftRotationAnimation
RAMRightRotationAnimation
RAMFlipLeftTransitionItemAnimations
RAMFlipRightTransitionItemAnimations
RAMFlipTopTransitionItemAnimations
RAMFlipBottomTransitionItemAnimations
RAMFrameItemAnimation
RAMFumeAnimation

UITabBarItemとNSObjectを紐付ければ完成です。

f:id:llcc:20160623234625p:plain

タブバーを選択した時に良い感じのアニメーションをしてくれるようになりました。

f:id:llcc:20160623234817g:plain

それとRAMItemAnimationというクラスを継承すれば独自アニメーションも作れるようです。