Бөлісу құралы:


Привет, watchOS — Пошаговое руководство

После создания решения, описанного в разделе "Установка и установка", у вас будет 3 проекта:

  • Родительское приложение iOS, используемое для установки или других задач администрирования на устройстве. (С другими типами расширений iOS это часто называется приложением Container.) С помощью контрольных приложений пользователи смогут запускать приложение watch, не запуская родительское приложение;
  • Расширение watch, содержащее код программы для приложения наблюдения; И
  • Приложение "Смотреть", в котором хранятся раскадровки и ресурсы изображений, отображаемые в часовом режиме.

Убедитесь, что ссылки верны: у родительского приложения есть ссылка на приложение "Контрольные" и что приложение "Просмотр" имеет ссылку на расширение.

Убедитесь, что идентификаторы пакета соответствуют соглашению *.watchkitextension *.watchkitapp и что файл Info.plist расширения имеет значение идентификатора пакета WKApp, заданное в качестве идентификатора пакета приложения watch.

Вы должны иметь возможность запустить приложение "Смотреть" сейчас, но так как файл раскадровки в приложении "Просмотр" пусто, вы не сможете рассказать.

Дважды щелкните интерфейс.раскадровку в приложении "Просмотр", чтобы запустить конструктор Xamarin iOS (если вы находитесь на Mac, вы также можете щелкнуть правой кнопкой мыши и открыть с помощью > конструктора интерфейсов Xcode).

  1. Убедитесь, что панели элементов и свойств видны,

  2. Щелкните, чтобы выбрать контроллер интерфейса,

  3. Задайте идентификатор и заголовок контроллера интерфейса для interfaceController и Hi Watch,

  4. Убедитесь, что для класса задано значение InterfaceController

    Set the Identifier and Title of the Interface Controller to interfaceController and Hi Watch

Создайте пользовательский интерфейс:

  1. На панели элементов
  2. Перетащите кнопку и метку на сцену, и
  3. Задайте текст и атрибуты элементов управления, как показано ниже.
  1. Задайте имя на панели свойств для каждого элемента управления. В этом примере мы использовали myButton и myLabel.

  2. Нажмите кнопку на раскадровке и перейдите в список событий панели свойств, а затем

  3. Создайте новое действие , введя OnButtonPress и нажав клавишу ВВОД. Действие появится в списке, а частичный метод будет автоматически создан в C#.

The OnButtonPress Action added to a button

После сохранения раскадровки InterfaceController.designer.cs обновляется с именами элементов управления и действиями.. Если вы откроете этот файл после обновления, вы увидите, как соответствует контроллеру и как элементы управления пользовательским интерфейсом соответствуют переменным экземпляра C# и OutletAttribute как RegisterAttribute действия сопоставляются с частичными методами, помеченными с ActionAttributeпомощью :

// WARNING
//
// This file has been generated automatically by Visual Studio for Mac from the outlets and
// actions declared in your storyboard file.
// Manual changes to this file will not be maintained.
//
[Register ("InterfaceController")]
partial class InterfaceController
{
    [Outlet]
    [GeneratedCode ("iOS Designer", "1.0")]
    WatchKit.WKInterfaceButton myButton { get; set; }

    [Outlet]
    [GeneratedCode ("iOS Designer", "1.0")]
    WatchKit.WKInterfaceLabel myLabel { get; set; }

    [Action ("OnButtonPress:")]
    [GeneratedCode ("iOS Designer", "1.0")]
    partial void OnButtonPress (WatchKit.WKInterfaceButton sender);

    void ReleaseDesignerOutlets ()
    {
        if (myButton != null) {
            myButton.Dispose ();
            myButton = null;
        }
        if (myLabel != null) {
            myLabel.Dispose ();
            myLabel = null;
        }
    }
}

Теперь откройте InterfaceController.cs (не InterfaceController.designer.cs) и добавьте следующий код:

int clickCount = 0;
partial void OnButtonPress (WatchKit.WKInterfaceButton sender)
{
  var msg = String.Format("Clicked {0} times", ++clickCount);
  myLabel.SetText(msg);
}

Этот код должен быть довольно прозрачным: переменная clickCount экземпляра увеличивается каждый раз при вызове функции OnButtonPress . Текст myLabel изменен, чтобы отразить это число. myLabelКонечно, это имя одного из точек, созданных в XCode. Функция partial — это реализация функции, связанной с именем указанного действия.

Если он еще не запущен,

  1. Щелкните правой кнопкой мыши проект расширения "Просмотр" и выберите "Задать в качестве запуска проекта",

  2. Задайте целевой объект развертывания для образа симулятора, совместимого с набором часов (например, i Телефон 6 iOS 8.2),

  3. Нажмите кнопку отладки, чтобы активировать запуск сборки и симулятора.

    The Visual Studio interface elements

Когда симулятор запускается, нажмите кнопку, чтобы увеличить метку. Поздравляем, у вас есть приложение watch!

The app running in the Simulator