Лекция 11 CS193P Fall 2017 — Drag&Drop, таблица Table View и коллекция Collection View.

Лекция 11 посвящена двум  темам: механизму Drag & Drop, который представляет собой способ разделения (sharing) информации между различными приложениями, а также таблице Table View и коллекции Collection View, которые обеспечивают отображение информации неограниченного объема.

Первая часть Лекции 11 посвящена механизму Drag & Drop. Этот механизм особенно важен в iOS 11, потому что в этой операционной системе у iPad есть прекрасные многозадачные возможности одновременного размещения на экране двух приложений, которые могут  успешно использовать механизм Drag & Drop. При выполнении Drag&Drop механизм multi-touch (множества прикосновений) и multi-fingers (множество пальцев) позволяют достичь феноменального эффекта при взаимодействии с экраном. Вы можете находиться в середине процесса перетаскивания (Drag) и сказать: “Так, я хочу добавить еще некоторые вещи к этому перетаскиванию.” Для этого вам достаточно “тапнуть” на этих вещах, и они добавятся к вашему перетаскиванию (Drag) .

Читать далее

Задание 3 Stanford CS 193P Fall 2017. Графическая игра Set. Решение обязательных пунктов.

Содержание

Цель этого задания — в получении опыта создания своих собственных пользовательских (custom) view, включая управление пользовательскими жестами.
Начните свой код с Задания 2.
Текст Домашнего задания на английском языке доступен на  iTunes в пункте “Programming: Project 3:Graphical Set″. На русском языке вы можете скачать Задание 3 здесь:

Задание 3 Игра Графический Set iOS 11.pdf

Начинаем выполнять с кода Задания 2.

Правила игры Set:

SET INSTRUCTIONS - RUSSIAN.pdf

Для решения Задания 3 необходимо ознакомиться с Лекциями 6 — 8.

Мое решение Задания 3 состоит из основного приложения Set III NoExtra и вспомогательного SetCard для отдельной карты, они находятся на Github  для iOS 11 и на Github для iOS 12.

Пункты 1, 2, 3 и 4 обязательные

1. Ваше приложение должно продолжать играть в соло версию игры Set, как это требовалось в Задании 2.

2. В этой версии не нужно ограничивать пользовательский интерфейс (UI) фиксированным числом карт. Вы всегда должны быть готовы к тому, что могут быть сданы еще 3 карты с помощью кнопки “Deal 3 More Cards”. Если карт в колоде больше не осталось, то кнопка “Deal 3 More Cards” исчезает.

3. Не “отводите заранее” место для максимально возможного количества карт — 81. В любое заданное время карты должны иметь настолько возможно большой размер, насколько это позволит отведенное для них место на экране и количество карт, находящихся в игре. Другими словами, когда игра начинается (только с 12 -ю картами), карты будут реально большими, но по мере все большего количества карт на экране (благодаря кнопке “Deal 3 More Cards”), они будут становиться все меньше и меньше для того, чтобы соответствовать размеру игрового поля.

4. В конце игры, когда обнаружены 3 совпавшие карты и больше нет Set карт в колоде, совпавшие карты должны быть полностью убраны и оставшиеся карты должны “пере-формироваться”, чтобы использовать освободившиеся покинувшими игру картами пространство экрана с экрана (то есть стать опять немного больше, если это позволит размер игровой области на экране).

Читать далее

Лекция 10 CS193P Fall 2017 — Многопоточность и Autolayout.

Судя по названию, основными темами Лекции 10 являются:

  1. Многопоточность,
  2. Система Autolayout,

но очень значительная часть Лекции 10 посвящена также усовершенствованию функциональных возможностей демонстрационного приложения Cassini по следующим направлениям :

  • использование множественного MVC Split View Controller в сочетании с парой Navigation Controllers для обеспечения функционирования на iPhone и iPad
  • применение extension для расширения возможностей класса UIViewController в плане получения содержимого content в случае использования или неиспользования Navigation Controller
  • тонкости использования индикатора активности  (Activity Indicator) в виде маленького вращающегося «колесика» для визуализации занятости системы

В результате получился универсальный, подходящий на все случаи жизни, как в дальнейшем покажет практика, MVC для показа изображений по их URL —  ImageViewController. Огромный объем изображений NASA, задействованных в демонстрационном приложении Cassini , наглядно показывает необходимость использования многопоточности.
Читать далее