Skip to content

g08m11/schooText

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 

Repository files navigation

Xcodeの各部名称

イメージ図 20130225020153.png

1.ツールバー
2.ナビゲーションエリア
3.ジャンプバー
4.インスペクタセレクトバー
5.ナビゲーションエリア
6.エディタエリア
7.インスペクタペイン
8.フィルターバー
9.デバッグバー
10.ライブラリセレクトバー
11.デバッグエリア
12.ライブラリペイン

イメージ図 スクリーンショット 2014-11-12 17.24.59.png

この中でも主にFileタブ、Productタブを今回利用します。

詳細は以下のリンクで確認しましょう。

(commandキーを押しながらクリックすると別タブで起動することが出来ます。)

Xcodeの使い方


STEP1の完成イメージ

swift_2.gif

1・新規ProjectをSingleViewで作成します。

ここではwebViewSampleというプロジェクト名で作成しています。

スクリーンショット 2014-08-19 0.09.13.png

スクリーンショット 2014-08-19 0.09.46.png

スクリーンショット 2014-08-19 0.10.16.png

2・Main.storyboardを選択します。そしてユーティリティエリアからwebviewを選び、viewControllerへwebviewを貼付けます。最後にauto layautoを設定します。

スクリーンショット 2014-08-19 0.11.03.png

次に画面表示の最適化を行うためにauto layautoを設定していきます。 画面にぴったり合わせます。 そしてMain.storyboardの右下の「△」を押し、「Add Missing Constraints」を押して、 設定していきます。

スクリーンショット 2014-10-29 20.53.04.png

スクリーンショット 2014-10-29 20.53.25.png

3・貼付けたwebviewに対してcontrolキー + ジェスチャーを使い、delgateを追加します。

スクリーンショット 2014-08-19 0.11.37.png

4・webViewからCtrlを押しっぱなしでViewController.swiftにドラッグして、アウトレットを追加します。

ここではwebViewという名前で設定しています。

スクリーンショット 2014-08-19 0.12.29.png

5・view Controllerを以下のように修正します。

//
//  ViewController.swift
//  webViewSample
//
//  Created by g08m11 on 2014/08/19.
//  Copyright (c) 2014年 Bloc. All rights reserved.
//

import UIKit

class ViewController: UIViewController {

  @IBOutlet var webView: UIWebView!

  // ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ この部分を写経
  //表示したいURLを設定(初期化)
  var targetURL = "http://rakutenqute.herokuapp.com/"
  // ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ この部分を写経

  override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    // ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ この部分を写経
    // webViewを表示するためのメソッド呼び出し
    loadAddressURL()
    // ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ この部分を写経

  }

  override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
  }

  // ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ この部分を写経
  func loadAddressURL(){

    // 初期化済みのURLを読み込む
    let requestURL = NSURL(string: targetURL)

    // 読み込んだURLの実行結果を取得する
    let req = NSURLRequest(URL:requestURL!)

    // webvieにデータをロードする
    webView.loadRequest(req)
    webView.scalesPageToFit = true

  }
  // ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ この部分を写経

}

6・バグがないかチェックしましょう。

「Product」タブを選択して、「Build」を押してみましょう。 バグが無ければ以下の画像が表示されます。

スクリーンショット 2014-11-11 21.09.17.png

ただ、エラーがあった場合は以下の画像が表示されます。

スクリーンショット 2014-11-11 21.12.46.png

バグが無い状態を確認した後、 「Product」タブを選択して、「Run」を押してみましょう。 自動的にiPhoneシュミレーターが起動されます。

7・指定したURLが表示されれば成功

白い画面が数秒表示されますが、慌てずに待ちましょう。

スクリーンショット 2014-08-29 0.29.06.png


### 備考 表示しているURLは[Rakuten Qute!](http://rakutenqute.herokuapp.com/)というwebアプリです。

Rakuten Qute!





STEP2の完成イメージ

(こちらはステップ1が前提となっています。)

schooSample.gif

1・「webViewSample」プロジェクトを開きます。

2・view Controllerを以下のように修正します。

//
//  ViewController.swift
//  webViewSample
//
//  Created by g08m11 on 2014/08/19.
//  Copyright (c) 2014年 Bloc. All rights reserved.
//

import UIKit
// ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ この部分を写経
// twitterなどのSocialへ投稿する際に必要な機能を外部から読み込むための初期化
import Social
// ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ この部分を写経


class ViewController: UIViewController {

  @IBOutlet var webView: UIWebView!

  //表示したいURLを設定(初期化)
  var targetURL = "http://rakutenqute.herokuapp.com/"

  // ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ この部分を写経
  // twitter投稿画面を生成するための初期化
  var myComposeView : SLComposeViewController!
  // twitter用のボタンを生成するための初期化
  var myTwitterButton: UIButton!
  // ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ この部分を写経

  override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    // webViewを表示するためのメソッド呼び出し
    loadAddressURL()

    // ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ この部分を写経
    // twitterに似た色合いをコードで生成するための設定。色味のみの設定
    let hex: Int = 0x55ACEE
    let red = Double((hex & 0xFF0000) >> 16) / 255.0
    let green = Double((hex & 0xFF00) >> 8) / 255.0
    let blue = Double((hex & 0xFF)) / 255.0
    var myColor: UIColor = UIColor( red: CGFloat(red), green: CGFloat(green), blue: CGFloat(blue), alpha: CGFloat(1.0))
    // ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ この部分を写経


    // ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ この部分を写経
    // twitter用のボタンを設定。ボタンを押された後にtwitter投稿用のメソッド呼び出しまで設定
    myTwitterButton = UIButton()
    myTwitterButton.frame = CGRectMake(0,0,100,100)
    myTwitterButton.backgroundColor = myColor
    myTwitterButton.layer.masksToBounds = true
    myTwitterButton.setTitle("Twitter", forState: UIControlState.Normal)
    myTwitterButton.titleLabel?.font = UIFont.systemFontOfSize(CGFloat(30))
    myTwitterButton.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal)
    myTwitterButton.layer.cornerRadius = 50.0
    myTwitterButton.layer.position = CGPoint(x: self.view.frame.width - 55, y:self.view.frame.height - 115)
    myTwitterButton.tag = 1
    myTwitterButton.addTarget(self, action: "onPostToTwitter:", forControlEvents: .TouchUpInside)
    // ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ この部分を写経

    // ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ この部分を写経
    // twitter用のボタンを画面に表示させるための設定
    self.view.addSubview(myTwitterButton)
    // ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ この部分を写経

  }

  override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
  }

  func loadAddressURL(){

    // 初期化済みのURLを読み込む
    let requestURL = NSURL(string: targetURL)

    // 読み込んだURLの実行結果を取得する
    let req = NSURLRequest(URL:requestURL!)

    // webvieにデータをロードする
    webView.loadRequest(req)
    webView.scalesPageToFit = true

  }

  // ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ この部分を写経
  func onPostToTwitter(sender : AnyObject) {
    myComposeView = SLComposeViewController(forServiceType: SLServiceTypeTwitter)
    myComposeView.setInitialText("Swift講座でアプリ作ったよ!  ")
    self.presentViewController(myComposeView, animated: true, completion: nil)
  }
  // ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ この部分を写経

}

3・twitterのボタンが表示されれば成功

動作にも問題が無いかtwitterボタンを押してみましょう。

スクリーンショット 2014-11-08 12.28.44.png

About

schooの授業で使用します。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published