もぶわさおの「ダメ人間さんいらっしゃい」ブログ

技術系ブログにしたかったのにそうもいかなくなったけど、閉鎖するのもアレだからなんか書くブログです

屋根裏部屋作成の話 20180408

前回、和室の天井に穴を穿ち、屋根裏への移動を可能にしたわさおです

 

本日よりいよいよ、屋根裏部屋の作成に入ります

 

屋根裏部屋の作成についてですが、現時点では

①床板を貼る

②階段を作る

③電灯や電源を用意する

くらいにしか考えていません

というのも、現地調査の際に見えたものだけではプランが立ちそうになかったからです

 

で、まずは①の作業が必要となるわけですが、何から手をつけていいのやら…

 

とにかく、脚立の上ではラチがあきません

作業できるだけの場所が必要です

床を作る為の床を作らなければならない、という、果てしなく哲学的な命題を、現実に落とし込まねばなりません

 

f:id:mob-wasao:20190103040801j:image

で、実家から拝借した板

重たい木の板で、まるで机の天板のようでした

ひとまずわさおが乗って折れない板を借りたのです


f:id:mob-wasao:20190103040815j:image

脚立の上からの景色

おや?なんだい、この木々しい梁は…

そうです、角材の梁ではなかったのです

これは後から大変苦労するハメになりそうです


f:id:mob-wasao:20190103040841j:image

ひとまず、この木々しい梁の向こうに見える空間に、角材の梁でできた平らな地形が見えました

あそこを陣地とする為にはまず板が必要です

お近くのビバホームに出陣します


f:id:mob-wasao:20190103040809j:image
f:id:mob-wasao:20190103040805j:image
f:id:mob-wasao:20190103040812j:image

板、といっても色々あります

いわゆるベニヤ板のようなものや、構造用合板、フローリング材などなど

まあ、一般的なのは構造用合板でしょうか

針葉樹合板(F☆☆☆☆仕様)を買いました

ちなみに、F☆☆☆☆仕様というのは、環境ホルモンなどの有害物質が少なく、家の中で使ってもシックハウス症候群になりにくいですよ、という意味らしいです

 

本当は床を塗装したりクッションフロアを敷くのが面倒くさいので、塗装してある合板を使ってラクする予定だったのですが、シックハウス対策的にダメらしく、却下しました


f:id:mob-wasao:20190103040826j:image

 

で、設置しました

(すいません、写真ブレブレです…)

板は丸ノコで切りましたが、やはり素人なので、線通りには切れませんでした

まあ、足場だと考え、見切ることにしました

 

また、板の下に何もないと不安な為、根太を設置しました

根太というのは、梁と梁の間を走る床板を支える為の木の事です

私は2x4材をシンプソン金具という金具で固定して根太を張りました

 

2x4材のような規格木材を組むのに便利な金具としてシンプソン金具というのが売られています

わさおが使ったのはダブルシェアハンガー LUS24という金具です

これは梁に対し根太をはるのに適した形をしています

 

また、耐荷重も出ていたのでこれを使うのが良かろうと大量買いしました

ビバホームには在庫がなかった為、ジョイフル本田での調達になりました

 

それにしても、足場として作業できる場所が、梁の上しかなく、身体が安定しない状態で木材を切ったり、金具をつけたり、非常に苦しい作業でした

しかもなんか、梁がとてつもなく硬く、コーススレッドも釘もなかなか受け付けない

参りました…

 

ともあれ、七難八苦したおかげで、最初の作業スペースの床がはれたわけです

 

この時点では、シンプソン金具さえあれば床板をはることなどワケない、そう思っていたのですが、この後、その目論見は完全にハズレることになるのでした…

屋根裏部屋作成の話 20180324

前回の実地調査から数ヶ月

その間、作業は何もしていませんw

というか、作業するに際してどうするかを悩んでいました(これは本当。ずーっとアレコレ悩んでました)

 

というのも、屋根裏に登る方法は、前回の実地調査時に登った二階の押入れからしかなく、木材の搬入はかなり厳しいのです

 

また、実際に屋根裏部屋として使うに際し、入り口の階段はどこに設置するべきか、などなど、考えるべき事が山ほどあったのです

(最悪、手に負えない場合、屋根裏への移動口を塞ぐ方法などもねw)

 

で、色々悩んだ結果、これ以上机上では話が進まないという事になり、入り口を確保することにしました

 

f:id:mob-wasao:20190103033554j:image

ここは二階の和室

天井板の化粧板が剥がれてきてたので、どのみち何とかしたいなと思っていた箇所でした

ここに穴を穿つことにしました


f:id:mob-wasao:20190103033604j:image

ちなみに、相当な汚れが落ちてくる事が想像される為、養生というかなんというか、家具や荷物をビニールシートで包んでいます


f:id:mob-wasao:20190103033600j:image

マスキングテープを貼り、位置を定めました

ちなみに穴はどうやってあけるかというと

①ドリルを使い、ジグソーの歯が通る穴を開ける

②ジグソーを使い、四角に切り抜く

という感じです

しかし天井裏には100vの配線が走ってるので、それらの電線をジグソーで切ったりしないかが気がかりでした

一応、実地調査の際、電線が少ない箇所にあたりをつけてはいましたが、いきなり連載終了は避けたいところではあります(笑)


f:id:mob-wasao:20190103033612j:image

開口しました

かなりのホコリで、いきなり掃除が大変な予感です

そしてもう引き下がれない感…

ちなみに、簡易的に階段みたいなものをはめ込んでいますが…

f:id:mob-wasao:20190103033557j:image

まあ、こんな感じで大失敗…

2x4材に1x4材をコーススレッドでとめた簡易階段でしたが、全く耐荷重的にムリでした

足をケガする幸先の良い(笑)スタートになりました


f:id:mob-wasao:20190103033609j:image

で、まあ、安全装備には出し惜しみしてはいけないよ、という授業料を身体で払い、まずは脚立を用意する事になりました

ちなみに、和室の床から屋根裏の梁までの高さは280センチくらいでした

 

また、木材と脚立で出費は8500円くらいだったはずです

 

それではまた次回

屋根裏部屋作成の話 20171228

わさおは古びた一軒家に住んでいます

また持ち家なのでリフォームなどもしています

 

さて

我が家は5LDKなのですが、実は先人により、色々増改築された家でした

しかしながら、部屋数こそあれ、収納の少なさに最近気がつきました

 

そこで思い立ったのが、屋根裏部屋の作成でした

 

屋根裏というのは、屋根(ウチは三角屋根)の裏から天井板の裏までのスペースを指しています

 

一般的には1.3メートル前後の高さしかない空間とされていますが、物置きとして使うならありだと考えました

 

また、他の方が自作された屋根裏部屋の写真などを参考して、これくらいなら自分でもいけるかも、と、根拠のない自信から、作業を開始することにしました

 

まずはじめに、実地調査に入ります

 

二階の部屋の押入れの上(とんぶくろ?と言うの?)から、屋根裏に進入してみます

押入れから入るにしても、結構な高さなので怖いです

足場も不安定でしたしね

 

こちらがまず、見えた箇所です

f:id:mob-wasao:20190103024853j:image

一見すると、かなりの高さに見えます

1.3メートルどころの話ではない感じでした

また、他の方のサイトでみた屋根裏写真と似ていました


f:id:mob-wasao:20190103024856j:image

これは100vの配線です

なるほど、電線は天井裏を走ってます

これらの線より下に屋根裏部屋の床を作る事はできないので、電線の上の木材のツラが床にできる最低限になりそうです

 

f:id:mob-wasao:20190103024904j:image

向こうに見えるのは二階に増設したトイレの上の断熱材です

…あれ?そういえば、断熱材がほとんど入ってないですね


f:id:mob-wasao:20190103024908j:image

そして天井裏はホコリが堆積しています

これらがわさおの敵となりそうです

 

実地調査はそれくらいにして、さて、何をどうするか悩みながら、ホームセンターに来ました

何も決まってませんが、これから長い戦いになる事は明らかでした
f:id:mob-wasao:20190103024901j:image

次回に続きます

xcodeで関数などが補完された際に、補完された候補で確定する場合

xcodeでは関数などで以下のように補完候補が出てきます

f:id:mob-wasao:20170322172939j:plain

水色の部分は自分で入力する箇所で、エディタが候補として表示してくれてます

しかし今まで、その候補を使いたいのに、どのように確定するかわかりませんでした

(消しては同じ文字を入力していました。アホらしいですよね)

 

確定の仕方なのですが、まず、候補の前にカーソルを合わせ、Shiftキーと→を押します

すると以下のようになります

f:id:mob-wasao:20170322172556j:plain

で、Enterキーをおしますと、以下のようになります

f:id:mob-wasao:20170322173140j:plain

ほら、「String?」が入力されました

自分で入力する必要はありません

 

・・・こういうのって、誰か教えてくれないもんですかねぇ

聞くまでもなく使えるものなのでしょうか(汗)

SearchBarに入力中の文字を使い、リストから候補を探したい場合(インクリメンタルサーチ)

SearchBarに日本語を入力する際、変換候補が現れると入力が楽ですよね

それを実装する際にはまったので、その実装を説明します

 

まず、SearchBarに「確定前の入力内容」が飛んでくるイベントは

func searchBar(_ searchBar: UISearchBar, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool 

です

入力中の検索バーの内容(いままさに入力している文字以外)は、searchBar.textから取得可能です

今まさに入力している文字は、textに入っていますし、textが編集される文字列のインデックスはrangeに入っています

 

じゃあ、searchBar.textのrange位置にtextを入れてやれば、今まさに入力されている状態と同じ文字がくるかと思うじゃないですか

やってみたソースが以下

let searchText = searchBar.text! as NSString).replacingCharacters(in: range, with: text)

でも、これ、うまくいかないんです

 

やってみてもらえればわかりますが、rangeでくるデータが意外に微妙なのです

日本語入力の場合、「あ」→「い」という風に、押す回数によって文字が変わりますよね?(フリック入力でない場合)

その際にやってくるrangeの中身がみんな同じなので、使えません

文字を足そうとしているのか、置き換えようとしているのか、判別つかないんです

 

じゃあ、どうしましょう?

結果として、遅延実行という手を取りました

ちょっと時間をあけて、処理を行うという手法です

複数回キーを押されたにしても、遅延して処理を実行することにより、searchBarには入力後の値が入っているだろう想定でやるのです

だので、以下のようになります

// searchBarに文字入力されたら呼ばれるメソッド(確定前でも呼ばれる)
func searchBar(_ searchBar: UISearchBar, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
        
    DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
        // リストを全消去する
        self.list?.removeAll()
            
        // 検索文字列を生成する
        let searchText = searchBar.text!
            
        // 検索対象の文字列を絞り込んで、リストにする
        self.list = self.stationList?.filter({($0 as! StationMaster).stationNameHiragana!.contains(searchText)})
            
        // リストを再描画する
        self.tableView.reloadData()
    }
    return true
}

わかりますかね

DispatchQueue.main.asyncAfterの中の処理は0.1秒ほど遅れて実行されます

その中でやっているのは、searchTextの中の文字を信用して検索しているのです

やってみた実績として、上記の方法をオススメします

xcodeのプロジェクトにテキストファイルを追加して読み書きしたいのだが・・・

プロジェクトにファイルを追加して、それを読んだり書いたりしたとき、以下のようにするといいらしい

(Simulatorの方にファイルが転送されていたので正しいものと思う)

①Resourcesフォルダを切って、送りたいファイルを保存する

②プロジェクトを選択し、「New Group」から「Resouces」を作成

右側のペインの「Full Path」を①で作成したフォルダに設定する

(Full Pathの右上にあるフォルダアイコンを押下するとフォルダを変更できるよ)

③②で作成したGroupにファイルを追加する

(Groupを選択し、「Add File to …」から①のファイルを追加してやる

④一応確認だが、ビルド設定の「Build Phases」の「Copy Bundle Resources」に①のファイルが出ていることを確認する

f:id:mob-wasao:20170316110155j:plain

(※上の例では、Station.csvというファイルを追加して転送できるように設定した)

あとは下のソース

let bundle = Bundle.main

print((bundle.path(forResource: "Station", ofType: "csv"))!)

print("bundle:" + bundle.bundlePath)

これで設置されたファイルのパスがわかるのでファイルを開いてやればいいようだ

segueによる画面遷移の際、右から左への画面への画面遷移ができない

画面遷移を行う際、segueという仕組みを利用する

で、その遷移の話として「右方向の画面へ遷移していく」表示方式を取りたかったのだが、「下から上へ出てくる方式」しかできなかった

まずは以下のようになっている

f:id:mob-wasao:20170315113242j:plain

検索ボタンを押下すると、下の画面へ遷移するようにsegueを配置した

しかし、この方法では、「下から上へ画面が出てくる」方式の遷移しかできない

 

他のサイトに「show」は右から出てくる、みたいに書いてあって、なんども思考錯誤したけど、うまくいかなかった

するとどうも、「Navigation Controller」というものが挟まっていないことが原因だとわかってきた

 

だので、ナビゲーションコントロールを開始したいSceneの一番上のViewを選択し、メニューから[Editor]→[Embed In]→[Navigation Controller]と選択してやる

f:id:mob-wasao:20170315114723j:plain

すると以下のように「Navigation Controller」が挟まってくる

f:id:mob-wasao:20170315114845j:plain

そうすると、ようやく「右から左への画面遷移」ができるようになった

なんというか、大前提として、Navigation Controllerが必要だったようだ