Lecture 1: Introduction to iOS11, Xcode 9 and Swift 4

10378 ワード

レッスンリンク
Xcode 9を见て退きたいけどKing賛教授を信じて...
今日は1位で、実はグロリスのような位置づけのようです.

# Framework

  • オブジェクト(e.g.ボタン、スライダ等)の集合
  • .

    # Storyboard

  • UIキットを使用する場合のUI
  • の構成方法
  • の下にある+ボタンをクリックすると、UIコントロールを追加できます.
  • UIButton, UILabel etc.
  • コントロールを追加しクリックすると、オブジェクト自体がシーケンスイメージボードに追加されるので、以下に示すButton-Control-ViewのようにSuper Classのプロパティも表示されます!
  • # UIViewController

  • UIKEtを使用してビューを管理するオブジェクト
  • UIの管理に必要なすべてを理解している場合は、
  • を考慮してください.

    #シーケンスイメージボードとコードの同時表示(ViewControl)


  • の上の写真のように、シーケンス画像ボードとコードを同時に見たいのですが、講義はXcode 9を基準にUIが大きく違います...次のようにすればいい

  • #シーケンスイメージボードにコードを関連付ける

  • ctrlボタンを押しながら、シーケンスイメージボードでコードに関連付けるオブジェクトをクリックし、コードにドラッグすると、Action、Outlet、Outletのセットの1つに接続できます.
  • 動作:呼び出し方法

  • Outlet,Outlet Collection:Propertyを作成してPropertyに接続する

  • ActionまたはOutletに接続されている場合、@IBACTIONや@IBOUTなどのマークが付いたコードのブレークポイントに円が表示され、マウスを上に置くと、シーケンスイメージボードのどのオブジェクトに関連付けられているかが表示されます.既定のタイプはAnyで、現在接続するオブジェクトのタイプに変換する必要があります.
  • @IBACTION,@IBOUttletはSWIFT構文
  • ではありません
  • e.g.line 19ビットにマウスを置くと

  • このほか、オブジェクトを右クリックして関係を設定/削除することもできます.下図のように、シーケンスイメージボードの一番左のボタンをクリックして関係を設定することもできます.

  • # @IBAction func touchCard(_ sender: UIButton)


  • ボタンを押すと、アクションというメソッドが呼び出され、メソッドを呼び出すボタンがパラメータで渡されます.また、TouchCards内部では、ボタン押下時の動作を個別の方法として宣言している(e.g.flipCard(withEmoji:on:).これは隠匿画ですか?

  • cardButtonsは、シーケンスイメージボードに関連付けられたOutletであり、ボタンの外観を検索するためのボタンの集合である.この部分はとてもよく知らない...呼び出し動作のボタンを受け取ったのですが、なぜイモジに関する情報が含まれていないのか疑問ですが...これからはこつこつという事実が含まれていることを教えてくれますか?
  • class ViewController: UIViewController {
        ...
        @IBOutlet var cardButtons: [UIButton]!
        
        private var emojiChoices = ["👻", "🎃", "🧙‍♀️", "🍭"]
        
        @IBAction func touchCard(_ sender: UIButton) {
            flipCount += 1
            if let index = cardButtons.firstIndex(of: sender) {
            flipCard(withEmoji: emojiChoices[index], on: sender)
            } else {
                print("chosen card was not in cardButtons")
            }
        }
        
        private func flipCard(withEmoji emoji: String, on button: UIButton) {
            if button.currentTitle == emoji {
                button.setTitle("", for: .normal)
                button.backgroundColor = .systemOrange
            } else {
                button.setTitle(emoji, for: .normal)
                button.backgroundColor = .white
            }
        }
    }

    # @IBOutlet weak var flipCountLabel

  • SWIFTUIのようなテキストです.UIにカードが何回押されたかを表示するために使用され、同様に、押された回数はコントローラ内部で単独で実現され、最終的にはflipCountLabelにのみ接続される.
  • class ViewController: UIViewController {
        
        @IBOutlet weak var flipCountLabel: UILabel!
        
        private var flipCount = 0 {
            didSet {
                flipCountLabel.text = "Flips : \(flipCount)"
            }
        }
        ...
    }

    #Button Style defaultで置換

  • のデモンストレーション再生を終えた後、シミュレータを回し、Title Fontは50に設定されていたが、カードをめくるたびに鼻糞のように表情が浮かび上がった…Xcodeバージョンが違うからかもしれませんが、ボタンを作成すると最初はplain形式で表示されていましたが、プレゼンテーションのようにDefaultに変更して、設定したサイズが表示されました.

  • #久しぶりにもう一度SWIFT文法


  • Optionalにはset/not setの2つの状態があり、setであれば関連データがあります

  • nil not set状態を表すオプション
  • ""

  • シーケンスイメージボード...いやすぎて、1強だったのでコードより説明が多かったので、すぐにデモンストレーションを真似できると思っていたのですが、ストーリーボードで思ったより長い時間がかかってしまいました…毎回このようにコードすることはないでしょう...?接続が地獄すぎる...

  • 入門したばかりの頃やせめてSWIFTUIを習う前にやったほうが、ゲームのように面白くやったほうがいい...ハハハハ

  • キーキー...キーキー...2017年のindex(of:)は現在firstIndex(of:)に取って代わられています...そしてColor LiteralもXcode 13から消えていきます...
  • Framework

  • collection of Objects(e.g. buttons, sliders, etc.)
  • Storyborad is showing Objects

  • button inherits controls which inherits Views
  • UIViewController

  • knows everything about controlling a UI
  • Action

  • when this button is pressed call a method
  • @IBAction

  • shows the message sender from the UI
  • not part of swift syntax
  • ctrl + drag from the item
  • RightClick to get rid of things..


    50:40秒

    outlet

  • creates an instance variable(i.e. property) and tha property is gonna point to this UI label and we'll be able to talk to it
  • 1:03トランプ法
  • optionalはset/not setの2つの状態を有し、setである場合、関連データ
  • を有する.
  • nil : optional that's not set
  • ボタンスタイルdefaultに変更