Witaj, watchOS — przewodnik

Po utworzeniu rozwiązania wykonaj kroki opisane w temacie Instalacja i instalacja, będziesz mieć 3 projekty:

  • Aplikacja nadrzędna systemu iOS, która jest używana do konfigurowania lub innych zadań administracyjnych na urządzeniu. (W przypadku innych typów rozszerzeń systemu iOS jest to często nazywane aplikacją "Kontener". Dzięki aplikacjom do obejrzenia użytkownicy będą mogli uruchamiać aplikację do oglądania bez konieczności uruchamiania aplikacji nadrzędnej;
  • Rozszerzenie zegarka, które zawiera kod programu dla aplikacji zegarka; I
  • Aplikacja do obejrzenia, która zawiera zasoby scenorysu i obrazu renderowane na zegarku.

Sprawdź, czy odwołania są poprawne: czy aplikacja nadrzędna ma odwołanie do aplikacji zegarka i czy aplikacja zegarka ma odwołanie do rozszerzenia.

Upewnij się, że identyfikatory pakietów są zgodne z konwencją *.watchkitextension *.watchkitapp i że plik Info.plist rozszerzenia ma wartość identyfikatora pakietu WKApp ustawioną na identyfikator pakietu aplikacji do obejrzenia.

Teraz powinno być możliwe uruchomienie aplikacji do obejrzenia, ale ponieważ plik scenorysu w aplikacji do obejrzenia jest pusty, nie będzie można powiedzieć.

Kliknij dwukrotnie scenorys Interface.storyboard w aplikacji do oglądania, aby uruchomić Projektant platformy Xamarin dla systemu iOS (jeśli jesteś na komputerze Mac, możesz również kliknąć prawym przyciskiem myszy i otworzyć za pomocą > narzędzia Xcode Interface Builder)

  1. Upewnij się, że okienka Przybornik i właściwości są widoczne,

  2. Kliknij, aby wybrać kontroler interfejsu,

  3. Ustaw identyfikator i tytuł kontrolera interfejsu na interfaceController i Hi Watch,

  4. Sprawdź, czy klasa jest ustawiona na InterfaceController

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

Tworzenie interfejsu użytkownika:

  1. Z poziomu okienka przybornika ,
  2. Przeciągnij i upuść przycisk oraz etykietę na scenę i
  3. Ustaw tekst i atrybuty kontrolek, jak pokazano:
  1. Ustaw nazwę w okienku Właściwości dla każdej kontrolki. W tym przykładzie użyto i myButtonmyLabel.

  2. Wybierz przycisk na scenorysie i przejdź do listy Zdarzenia konsoli właściwości, a następnie

  3. Utwórz nową akcję, wpisując OnButtonPress i naciskając klawisz Enter. Akcja zostanie wyświetlona na liście, a metoda częściowa zostanie automatycznie utworzona w języku C#.

The OnButtonPress Action added to a button

Po zapisaniu scenorysu InterfaceController.designer.cs zostanie zaktualizowana przy użyciu nazw kontrolek i akcji. Jeśli otworzysz ten plik po jego zaktualizowaniu, zobaczysz, jak odpowiada kontrolerowi i jak RegisterAttribute kontrolki interfejsu użytkownika odpowiadają zmiennym wystąpienia języka C# oznaczonym za pomocą OutletAttribute elementu i jak akcje są mapowane na częściowe metody oznaczone tagiem 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;
        }
    }
}

Teraz otwórz InterfaceController.cs (nie InterfaceController.designer.cs) i dodaj następujący kod:

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

Ten kod powinien być dość przezroczysty: zmienna clickCount wystąpienia jest zwiększana za każdym razem, gdy funkcja OnButtonPress jest wywoływana. myLabel Tekst elementu zostanie zmieniony, aby odzwierciedlić tę liczbę. myLabelOczywiście jest nazwą jednej z placówek utworzonych w programie XCode. Funkcja partial jest implementacją funkcji skojarzonej z nazwą określonej akcji.

Jeśli nie jest to jeszcze projekt startowy,

  1. Kliknij prawym przyciskiem myszy projekt Rozszerzenia zegarka i wybierz polecenie Ustaw jako projekt startowy.

  2. Ustaw element docelowy wdrożenia na obraz symulatora zgodny z zestawem watch (na przykład i Telefon 6 iOS 8.2),

  3. Naciśnij przycisk Debuguj, aby wyzwolić uruchomienie kompilacji i symulatora.

    The Visual Studio interface elements

Po uruchomieniu symulatora naciśnij przycisk , aby zwiększać etykietę. Gratulacje, masz aplikację do obejrzenia!

The app running in the Simulator