キーボードとともに、UIViewをずらす方法

Apple-Swift1.jpg

SwiftでiOSアプリを開発していますが、キーボードが表示される時のレイアウトで困っている方は少なくないと思います。
キーボードが表示されると、ページの下部が見えなくなったりなどの問題が発生し、エンドユーザに迷惑を掛けないように、キーボードの表示・非表示に反応するアプリを作れたらいいなと思います。

ところで、本日は、iOSのUITextFieldなどのキーボード表示とともに、UIViewをずらす方法を紹介したいと思います!
まずは、とても簡単なSingleViewアプリを用意させていただきました。


 
はるかにシンプルなアプリですが、ページの真ん中あたりに、グレー色なUITextField (文字入力欄)があり、押すとキーボードが開きます。
ページの下にオレンジ色なUIView(長方形)もあり、それをタップすると、キーボードが閉じます。
 
swiftKeyboard1.png
 
けれども、問題!
キーボードが開くと、下のオレンジ色のUIViewが見えなくなり、キーボードを閉じることができません。
 
swiftKeyboard2.png
 
それを修正するには、NSNotificationは使えます!
NSNotificationとは、引き金のようなものとイメージしたらいいと思いますです。
 
キーボードのフレームが変わった時に、オレンジ色のUIViewの位置をずらしたいと思うので、今回の例で引きたい引き金は「UIKeyboardWillChangeFrameNotification」となります。
 
では、この「UIKeyboardWillChangeFrameNotification」が引かれたら、「UIViewを適切にずらす」というコードを書きましょう!
他にも、様々なやり方はあると思いますが、解りやすい例として、以下の方法を紹介したいと思います。
 
1. まず、UIKeyboardWillChangeFrameNotificationが引かれたら、keyboardWillChangeファンクションを呼ぶ
NSNotificationCenter.defaultCenter().addObserver(self, selector: “keyboardWillChange:”, name: UIKeyboardWillChangeFrameNotification, object: nil)
 
2. このファンクションで、キーボードフレームの上部(minY)を取る
var keyboardTop = self.view.frame.height – (notification.userInfo?[UIKeyboardFrameEndUserInfoKey] as? NSValue)!.CGRectValue().minY
 
3. その新しい高さをどこかに保存する(今回は別クラスのstatic varに保存する)
KeyboardOverlay.newTop = keyboardTop
 
4. UIViewの位置をキーボードの新しい位置と以前の位置の差異の分で引き足しする。
footer.frame.origin.y = footer.frame.origin.y + (KeyboardOverlay.currentTop – KeyboardOverlay.newTop)
 
5. キーボードの現在の位置を保存する。
KeyboardOverlay.currentTop = keyboardTop
 
合わせたら、コードは以下のようになります。
 

試しましょう〜

 

動いています!
これからも、Swiftの開発、頑張ります!

Swift2でUISearchBarの背景透過

UNIQLOのヒートテックタイツを履いたら怖いものがなくなりました。
マエダです。

Apple-Swift1.jpg

Swift2でiOSアプリを開発してますがUISearchBarの背景透過について紹介します。
# あまり情報なくバッドノウハウだったらすみません。。

Swift1系でも同じことをしたい方は多数いらっしゃったようです。
参考
http://ja.stackoverflow.com/questions/7315/uisearchbar%E3%81%AE%E8%83%8C%E6%99%AF%E3%81%AEview%E3%82%92%E9%80%8F%E6%98%8E%E3%81%AB%E3%81%97%E3%81%9F%E3%81%84

Swift2になるとSubViewアクセスできない風じゃないですか。。。
そこで参考サイトにインスパイアされて以下のようにすると実現できました。

setBackgroundImageで空のUIImageを設定してあげてます。

そもそもなんでUISearchBarの背景色指定させてくれないんだろう。。教えてエロいヒト。

オフィスが寒い

bsD785_nunowokaburuorau-tan.jpg
末端冷え性です。
こんにちわ。リエです。

毎日寒い日が続いていますね。
体調を崩す社員が増えていますが、幸いまだインフルエンザになった人はいません。
パンデミックハコワイ

やはり寒いと暖房をつけていても適温になるまでには時間がかかります。
この前、オフィスが寒いという話がでました。

とにかく足元が寒いのです。。
暖かい空気は上へ昇り、冷たい空気は下へたまるので仕方ないといえば仕方ないですが、どうにかできないのかと考える。。

◆提案1
正座で仕事する(えー!)

◆提案2
デスクの上で仕事する(えー!!)

◆提案3
我慢(えー!!!)

どれもびみょう・・・
ということでGoogle先生に聞いてみました。
その中に足元に段ボールを置いて中に足を入れてしまうという記事がありました。
段ボールは空気の層を作りだせるので、寒さを遮断してくれ中が暖かくなるそうです。
段ボールって優秀ですね。

私はひざ掛けをしているので実践はしませんが、誰か実践してくれないかとひそかに期待しております。

4月からの年次有給休暇取得義務化について

-shared-img-thumb-paku_klakkws_TP_V.jpg
最近髪を切ったのに誰にも気づかれませんでした。
こんにちわ。リエです。

皆さん有休はきちんと消化できていますでしょうか?
当社は有休消化率100%!という素晴らしい会社です(さりげなくアピール)
もちろん自身の業務管理をしっかりし、周りに迷惑をかけないというのが大前提ですがそれさえできていれば、自分の希望日で有休を取得することができます^^

なぜこんな話をするかというと、平成28年4月1日(今年ですね)より労働基準法の改正で年次有給休暇を年5日間は絶対に取得しなければいけないという決まりになるからです。
対象者は管理職を含めた全ての「年10日以上の有給休暇を付与される」人です。
年5日取得しない社員に対しては、会社は時期を指定し有休を消化させなければなりません。

有休って会社に指示されて消化するものではないんじゃ・・・っと思いますが、日本の有休取得率は約50%と低いのです。
※ちなみにすでに義務付けている欧米はなんと100%!

その原因としては、有休の申請をしにくいや仕事量が多くて休みたくても休めないというものがあります。
その改善のため今回の労働基準法の改正が行われたそうです。

日本人は働きすぎだと言われています。
休みたくても他の人に迷惑をかけたくないという理由で頑張りすぎてしまう・・
それが過重労働によるウツやストレスを引き起こす原因となっています。

この労働基準法の改正により、働きすぎの人の負担が少しでも軽くなるよう祈っています。

書き初めをしてみた

PM2.5に完全に参っています。
こんにちわ。リエです。

2016年全員が揃ったとある日にみんなで書き初めをしました。
テーマは「今年の抱負」
今年の抱負・・抱負・・・
何を書こうか考えいざ書き初め。

全体MTGで各自発表しました。
内容はやはり個性が出ますね。
言葉って深い!

発表後は壁に貼りました。
IMG_3655.jpg

ちなみにベストオブ書き初めは生(なま)!
IMG_3656.jpg

セイメイリョクヲカンジタヨ