21873


Swiftにて、ViewControllerにおいて画像と線を表示させようとしています。  
そこで、画像はUIImageViewでとりこみ、ViewController classにおいて  
self.view.addSubview()  
によって表示させました。  
一方で線は、線を引くためのclass(drawLineView)をつくりCGContextを用いて表示させました。  
この際、Main.storyboard、View Controller、 Viewにおいて、Custom
ClassをdrawLineViewに設定しました。

以上のことで画像と線は表示できたものの、いまいち仕組みが理解できず質問させていただきました。

この時ViewはclassをdrawLineViewに設定されているのに、なぜ画像が表示できたのでしょうか？  
また、例えばほかのclassを追加して表示したい場合はどのように行なえばよいのでしょうか？

どうぞよろしくお願いします。


CC BY-SA 3.0
2016-02-07T10:21:15.217
21810
2016-02-09T03:08:55.613
13272
question
swift
SwiftのaddSubviewとCGContextの違いについて


iOSアプリを開発する際に、画面を作成する方法は幾つかあります。

  * `Main.storyboard`にUI部品を配置していく方法  
`UIImageView`の実装で利用している方法です

  * ソースコードに書いていく方法  
`drawLineView`の実装で利用している方法です

個人的には極力`Main.storyboard`を利用することをおすすめしたいと思います。  
理由は`Main.storyboard`を利用することで、

  * クラスのインスタンス化
  * ViewへのUI部品の追加
  * サイズの設定
  * デザイン or スタイルの設定

などをソースコードで書くことなく済んでしまうからです。

今回の`drawLineView`のようなカスタムクラスを作成する際も、  
(当然カスタム化している部分に関してはソースコードで書く必要はあるのですが)  
`Main.storyboard`に配置することができます。

やり方は下記手順の通りです。

  1. 拡張元クラスのUI部品を設置したい場所に配置
  2. その部品を選択した状態で、右メニュー > "Show the Identity Inspector" > Custom Class > Class にカスタムクラスを指定

[![Main.storyboardへのカスタムクラスの適用方法](https://i.stack.imgur.com/StlLL.png)](https://i.stack.imgur.com/StlLL.png)

よって他のクラスも追加したい場合は、  
同様の手順で`Main.storyboard`に必要なUI部品を配置していけば良いと思います。

質問への回答になっていますでしょうか？  
認識がズレている場合はご指摘頂けますと幸いです。


CC BY-SA 3.0
2016-02-09T03:08:55.613
21873
2016-02-09T03:08:55.613
8968
21810
answer