ホームページ >バックエンド開発 >PHPチュートリアル >Shangxuetang iOS の主要なビデオ素材の共有
「Shangxuetang iOS 初級ビデオ チュートリアル」は、Objective-C 言語に関する基本的な入門から高度な習熟まで、Shangxuetang のビデオ チュートリアルの完全なセットです。このコースでは、Objective を深く詳細に理解できます。 -C言語 主にObjective-Cの基本構文、オブジェクト指向プログラミングの考え方、カプセル化(クラス宣言と実装、ゲッターメソッドとセッターメソッド、プロパティ)、メモリ管理、継承、ポリモーフィズム、分類、プロトコル、ブロック、NSNumberについて説明します。 、文字列、配列、辞書、日付、ファイル管理、コピーなど。
ビデオ再生アドレス: http://www.php.cn/course/572.html
IOS開発の過程での困難:
1. Swift言語では?そして!質問
インターネット上で役立つ Web ページをたくさん検索しましたが、すべて異なる意見があり、幸いなことに、ある Web ページで少しわかりやすくなりました。
私の個人的な理解を付け加えると、この早口言葉は単純で上品に見えますが、実際には多くの謎が隠されています。なぜそれを使うのでしょうか?そして!の目的は、コードをより明確にし、より多くの潜在的なエラーを見つけるためのより多くの手がかりをコンパイラーに提供することです。これは Apple がリリースした言語であり、Apple の性格に沿ったものであり、曖昧な質問をコンパイラーに任せて判断するのではなく、コードを書く前に物事を理解する必要があります。
2. テーブルビューのロジック
iOS システムはオープンソースではないため、テーブル関数を実装したい場合は、システムの所定のルーチンをインストールする必要があります。いくつかの重要なポイントがあります。1 つはデータの提供を担当する 2 つのエージェントであり、1 つ目はシステムに行数を通知する最も重要な機能です。 2 つ目は、テーブルに何行あるかをシステムに伝えることです。これは、各行のデータが何であるかをシステムに伝えるだけです。 2 番目の関数は複数回呼び出されます。ページ内に 10 行があるとすると、このインターフェイス関数は 10 回呼び出されます。ただし、システムはユーザーが現在表示しているページのデータのみを要求するため、複数のページは許可されません。表に 100 個のデータがある場合、連続スクロール処理中に古いデータを破棄し、新しいデータを埋めることで実装されます。
これはビュー用のプロキシで、もう 1 つのプロキシはコントローラ用です。これは、ユーザーがテーブル内の項目をクリックしたときにプログラムが実行するもので、最も一般的に使用されるものは、開発者が書くだけで済みます。独自の実装コードはここにあります。ここでの関数名は混同しやすいので、didDeselected に書き込まないように注意してください。Deselected は、項目が選択状態から未選択状態に変更されたときに呼び出されます。最初にこれを書いたとき、いつも何かが間違っていると感じましたが、後で気づきました。
顧客タイプのプロトタイプを使用する場合、内部のラベル オブジェクトにアクセスするにはどうすればよいですか?タグの使用。
一般的なテーブルの例。テーブル内のセルには最大 2 つのラベルしかありませんが、プロジェクトには 5 つのラベルを配置する必要があります。では、コード内でこれらのラベルを操作するにはどうすればよいでしょうか。インターフェイスは IB でプルされるため、セル内のラベルを Ctrl キーを押しながらドラッグしてコードにプルすることはできません。後で、各ラベルにタグ値を設定し、コード内で viewByTag
UILabel *name = [cell viewWithTag:TAG_NAME]; UILabel *singer = [cell viewWithTag:TAG_SINGER]; UILabel *code = [cell viewWithTag:TAG_CODE]; UILabel *lang = [cell viewWithTag:TAG_LANG]; UILabel *type = [cell viewWithTag:TAG_TYPE];
を使用する例を見ました。このようにして、対応するラベルを取得できます。
その後、直接アクセスできることを偶然知りましたが、最初にクラスを使用してセルを定義し、次にインターフェイスでラベルステートメントを手動で作成する必要があります。テーブルビュー内に線を引くことができます。
この問題はこのページで議論されています。
テーブルの設定が不適切な場合、簡単にアプリがクラッシュする可能性があり、よく次のようなメッセージが表示されます:
この場所でクラッシュ: AppDelegate: UIResponder、UIApplicationDelegate
デバッグによって表示される情報は次のとおりです:
*** アプリの終了期限キャッチされなかった例外 'NSInvalidArgumentException'、理由: '-[UINavigationItem tableView:numberOfRowsInSection:]: 認識されないセレクターがインスタンス 0x7fd9d1760d70 に送信されました'
その理由は、実際にはテーブルビューのデータソースが関連付けられていないことをストーリーボードで見たため、自分でデータをテーブルに関連付けたからです。多くの場合、この種のクラッシュは、関連付けられているデータソースが正しくないことを意味するため、まず接続を切断してみてください。私の理解では、最下層が見えないため、この層に関連付けられて他の層が解放されると推測することしかできません。その結果、有用なオブジェクトが見つからず、システムがクラッシュします。これが、多くの経験豊富なプレイヤーがストーリーボードの使用を好まない理由です。ストーリーボードは制御が難しく、隠されたものを発見するのが難しいためです。コードを使用してインターフェイス構造を実装するのは少し面倒ですが、そのように記述されることを十分に知っているよりは良いでしょう。この段階では、まだグラフィック ツールに依存する必要があります。グラフィックの欠点の 1 つは、2 つのプロジェクトのストーリーボードを比較できないことです。チュートリアルを段階的に実行しても、何か問題が発生することがありました。ダウンロードの先生はよくやってくれました、コードを見比べても違いはありませんが、絵コンテの違いが大きすぎて全く分かりません。相手のファイルを自分のファイルで直接上書きすると、エラーが発生します。
全体的に、私にはまだ十分なスキルがありません。今後はしっかりとした基礎をしっかりと築いていく必要があります。
3. 検索バーのロジック
以前は、検索バーと検索表示などのオブジェクトが分離されていましたが、その後、Apple はそれらを統合するソリューションを提供し、検索アルゴリズムもオブジェクトにカプセル化しました。それは開発者の仕事です。しかし、私のような開発者にとって、それはまったく逆です。逆に、検索バーの内容が変更されたときに検索を実行し、テーブルを 1 回更新するだけで済むため、最も単純な検索バーの方が私には適しています。そして、これらのバンドルされたディスプレイ コントローラーを呼び出す場合は、さらに多くのプロトコルを実装する必要があり、結果表示を出力するテーブル ビュー コントローラーも提供する必要があり、本当にめまいがします。 Appleの公式情報にも実装例が記載されていますが、この例自体は非常に複雑で複数のView Controllerが関係しています。
このページで提供されている方法の方が私には適しています。
これは Apple が主導したアプローチであり、古いアプローチを廃止し、UI 検索コントローラーの使用を推奨しています。しかし、この変更の背景は何なのかはわかりません。あまり便利とは思えません。
4. IB を使用してインターフェイスを作成しますか、それともコードに実装しますか?
コードを使用してコントロールのサイズを設定すると、異なる画面に適応するときに問題が発生する可能性があります。自動サイズ変更部分を行う方法はまだ検討されていません。
しかし、コードを使用してインターフェイスを作成することは、想像されているほど難しくはありません。実際には、インターフェイス内のコントロールをオブジェクトとして扱い、オブジェクトの親しみやすさを設定し、オブジェクトをビューに追加するだけです。関連するデリゲートを設定すればOKです。
コースの講師、Guo Chongzhi は若くて将来有望で、彼の講義は比較的リラックスして自然で、私たちもリラックスして聞くことができます。
以上がShangxuetang iOS の主要なビデオ素材の共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。