swiftの復習と覚書

 何年かぶりにiOSアプリ開発のお手伝いをすることになった…しかしswiftはおろかXcodeの、いや最早macの触り方すら覚束ない…。そんな事態になった私から、そんな事態になるかもしれない未来の私への復習と覚書です。

 

swiftの復習と覚書

 

やること

Xcodeを開いてラジオボタンを用いたiOSのSingle View Appを作ってみる

 

環境(ちょっと古め)

macOS High Sierra 10.13.2

Xcode 9.3.1

swift4

 

使わせてもらった外部ライブラリ

github.com

 

1:新規プロジェクトを作る

f:id:gwn001:20181008115551p:plain

まずランチャーを開く。私よ、ランチャーはこいつです。

f:id:gwn001:20181008115622p:plain

それからXcodeを起こします。こんなアイコン。

f:id:gwn001:20181008121205p:plain

起きたら新しいプロジェクトを作ります。

f:id:gwn001:20181008121625p:plain

iOSのSingle View Appを選んで、

f:id:gwn001:20181008121918p:plain

Product Nameを付けます。今回はSelectStarという名前でLanguageのSwiftを選択、Nextで次の画面へ行くと保存場所を聞かれるので任意の場所へ保存して下さい。

 

 

2:ストーリーボードにUIパーツを配置する

f:id:gwn001:20181010162644p:plain

f:id:gwn001:20181010162703p:plain

今回使うパーツはこの2つ。ラベルとビューです。

f:id:gwn001:20181010162743p:plain

iOS標準としてXcodeに用意されているラジオボタン的な動きをするのは、このセグメントコントロールという子なのですが…ここはラジオボタンに慣らされた社会ですので求められるのもラジオボタンなのです。(iOSAndroid共通のデザインとかだと特に)

よって、この子に罪はないが今回は使いません。

f:id:gwn001:20181010165214p:plain

左端のツリーからMain.storyboradを開いて右下から必要なパーツを選択し配置します。

f:id:gwn001:20181010165802p:plain

ラベルは右上のプロパティから文言を入力します。必要があれば色やフォントも調整します。

f:id:gwn001:20181010170117p:plain

設問と選択肢を配置します。空白の正方形部分に配置しているのがビューで、この部分をこれからラジオボタンにします。

 

 

3:外部ライブラリを使ってカスタムUIクラスを適用する

f:id:gwn001:20181010173807p:plain

まずカスタムUIクラス用のswiftファイルを用意しましょう。左端ツリーのSelectStarフォルダをcontrol+クリックでメニューを開いてNew Fileです。そう、macで右クリック的な事をしたい時はcontrol+クリックです。思い出しましたか、私よ。

f:id:gwn001:20181010174234p:plain

iOSのSwift Fileを選び、次の画面でファイル名を付けます。捻りなくライブラリ名のLTHRadioButtonとしました。

ファイルができたら開いてコチラをコピペします。

f:id:gwn001:20181010174935p:plain

Main.storyboradへ戻り3つのビューのCustom ClassでLTHRadioButtonを選び適用させます。

 

4:アシスタントエディタで接続線を伸ばす

f:id:gwn001:20181013145600p:plain

右上の○が2つ重なったアイコンをつついてアシスタントエディタを開きます。

f:id:gwn001:20181013144650p:plain

アシスタントエディタでViewController.swiftが開かれているのを確認し、controlを押しながらラジオボタンをドラッグしてViewControllerクラス内へ接続線を伸ばします。

f:id:gwn001:20181013150738p:plain

Outlet接続でプロパティ名をradioButton1〜3としました。

接続線がつながらない場合は、先にViewControllerクラスへプロパティ宣言を書きストーリーボードのアシスタントエディタでプロパティから接続線を伸ばすとつながるときもあります。(たぶんXcodeのバグ)

 

5:コードを書く

左のツリーからViewController.swiftを開いてviewDidLoadにラジオボタンの選択・非選択に関するコードを書きます。

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var radioButton1: LTHRadioButton!
    @IBOutlet weak var radioButton2: LTHRadioButton!
    @IBOutlet weak var radioButton3: LTHRadioButton!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        
radioButton1.selectedColor = UIColor.red radioButton2.selectedColor = UIColor.red radioButton3.selectedColor = UIColor.red radioButton1.onSelect { self.radioButton2.deselect() self.radioButton3.deselect() } radioButton1.onDeselect { } radioButton2.onSelect { self.radioButton1.deselect() self.radioButton3.deselect() } radioButton2.onDeselect { } radioButton3.onSelect { self.radioButton1.deselect() self.radioButton2.deselect() } radioButton3.onDeselect { } } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }

LTHRadioButtonはこのonSelect{}とonDeselect{}がないと動かない仕様になっているので忘れず書きましょう。

 

6:ビルド

f:id:gwn001:20181013153811p:plain

左上の実行ボタンを押してビルドします。ビルド先が決まっている場合は右側のプロジェクト名が表示されているボタンから選択してから実行します。

f:id:gwn001:20181013155158p:plain

終わり。

ついでに言うと設問の正解はEärendilです。

 

 あいや えあれんでぃる えれにおん あんかりま

 

おまけ:SSの撮り方

・SSを撮る command+shift+3

・選択範囲のSSを撮る command+shift+4

・エミュでSSを撮る command+S

 

そのうちエルフ語学習アプリとか作れると良いなって妄想はあります。(開発者登録費用はありません)

J.R.R.トールキンのファンタジー世界 ~指輪物語とエルフ語への招待~の復習

青葉繁れる頃、エルフ語講座J.R.R.トールキンのファンタジー世界~指輪物語とエルフ語への招待~へ参加してきました。

伊藤盡先生の講義を受けるのは2014年に開かれた古英語叙事詩とホビットの冒険以来、4年ぶり2回目で今回もトールキン教授愛に溢れるお話を聞けて本当に楽しかったです。最高でした。俺たちの教授は天才なんだっ!

 

アルダに存在するエルフ語は数種類ありますが、今回の講座では中つ国でポピュラーなシンダリンを学びました。あとローハン語(古英語)も少し。

しかし恥ずかしながら私はエルフ語初心者のため、内容へついて行くのにイッパイイッパイ。板書もちゃんと写せ…写せたかな?どうだろう…みたいなレベルでした。

ということでタイトルは講座の復習となっていますが、いかんせん浅学なので講座で習ったシンダリンの語彙一覧をもって復習といたします。

 

続きを読む

バギンズはギュゲスなりや?

こちらは Tolkien Writing Day #3 への参加記事になります。



Happy HOBBIT Day!

バギンズ氏におかれましては心より、お誕生日おめでとうございます♪

めでたきこの日において少し暗いテーマになりますが、力の指輪の元ネタのうちの1つとされているギュゲスの指輪のギュゲスと一つの指輪の両バギンズ氏の関係について稚拙ながら意見を述べたいと思います。

続きを読む

カザドの歴史 第三紀編

 こちらはTolkien Writing Dayへの参加記事になります。



こんなで大丈夫かしらと思いながらもお陰様で、このドワーフの歴史まとめも第三紀までやってきました。

gwn001.hatenablog.jp
gwn001.hatenablog.jp
gwn001.hatenablog.jp

ひとえに私の力不足ゆえ前回から間があいてしまいましたが、いま一度のお付き合いをよろしくお願いいたします。

黎明編からお付き合いいただいている方にはご理解いただけていると思いますが、こちらは映画ではなく原作の歴史まとめになります。

映画と原作の歴史の違いについては実際に両方にふれていただくか、『別冊映画秘宝 ロード・オブ・ザ・リングホビット中つ国サーガ読本 』に詳しくまとめられていますので、そちらをお勧めいたします。



※これより先は『ホビットの冒険』や『指輪物語』のネタバレを含みます

続きを読む

神の愛でブン殴られた話(映画『ロード・オブ・ザ・リング』の衝撃)

 J.R.R.トールキン教授の作品世界へ足を踏み入れる際の心構えとして「山にたとえるとエベレスト級で奥の深い世界だが、大切なのはまず進むこと。とにかく大きいので登るルートがみんな違っても大丈夫。」と教えていただいた事を、最近になって思い出しました。

教授の作品世界。中つ国物語群を読み解き理解を深めるため、1ファンである私も折に触れては様々な角度からのアプローチを試みていますが、そんな我が身をふり返ると、どうも遭難しているように思えます。

そして初めて映画『ロード・オブ・ザ・リング』をみた時から、山にたとえると登山口へたどり着くか着かないかの時点で、すでに遭難していたのだと気づかされました。



この話は、教授の世界へ触れるきっかけであった映画『ロード・オブ・ザ・リング』を鑑賞した際に受けた精神的な衝撃についてです。

私は元からファンタジー全般へ好感を持っており、どうしようもなく中つ国のお話が大好きになってしまったタイプの人間です。

ですが今回の遭難話は、10年プロテスタント系の学校へ通い、勤勉なたちでは無かったにしろ毎日の礼拝に参加し、道徳の替わりに聖書の授業を受けていた人間(日本の仏教徒)が、真に「キリスト教の影響を受けている西洋の作品」と出会い、その表現にひすら感服するしかなかった話になります。

稚拙ではありますが私個人の宗教観を含む内容となっておりますので、そのあたりをご容赦いただけるようでしたら、どうぞお付き合い願います。

※これより先は映画『ロード・オブ・ザ・リング』のネタバレを含みます

続きを読む

レゴラスとギムリのペーパークラフトもどき

 こちらはレゴギムwebアンソロジーへの参加記事になります。

 

本来は基本的に新作を投稿すべきところ主催様から今回のみお許しをいただけたので、趣味で前に作ったレゴラスギムリの○○風(小心者なので伏字部分はご想像にお任せします)ペーパークラフトを投稿いたします。

 

続きを読む

ハーフエルフの系譜

 こちらはTolkien Writing Dayへの参加記事になります。

 

 謹んでエルフの新年のお祝いを申し上げます。

そして去年のアドベントに引き続き、このような機会に恵まれた事に感謝を。

 

 今回は前回と異なり、指輪物語の中でも(最近は外でも)有名なエルロンド卿が属するハーフエルフの系譜と、数字で見るその血筋について少しお付き合いいただきたく思います。

 

続きを読む