Натискащо действие на Apple Watch (WatchKit).

Разработвам приложение за Apple Watch и бих искал да използвам действието, демонстрирано при събитието за стартиране, при което потребителят натиска екрана (вместо докосване). Знаете ли как се нарича това и как мога да получа достъп до него?


person Tom Coomer    schedule 26.11.2014    source източник


Отговори (3)


Можете да покажете само меню за това действие. Използвате методите addMenuItem на WKInterfaceController.

person Stephen Johnson    schedule 26.11.2014

Жестът, за който говорите, се нарича Принудително докосване.

Възможно е да използвате Force Touch като метод за въвеждане в приложения на трети страни. Не можете обаче да се регистрирате, за да получавате известия за събития на Force Touch; в момента няма нищо еквивалентно на UIGestureRecogniser в WatchKit.

Когато имате контекстно меню в текущия екран на вашето приложение WatchKit, то автоматично ще се активира от операционната система, когато потребителят инициира принудително докосване. Можете да симулирате това в симулатора на Apple Watch чрез щракване и задържане с мишката... получената анимация ще изясни кога дори е инициирано Force Touch, дори на екрани, които нямат активирано контекстно меню.

За да използвате това чрез Interface Builder, вие просто:

  1. Плъзнете меню в съответната сцена на приложението за гледане в създателя на интерфейса.
  2. Добавете между един и четири елемента от менюто към менюто, като ги плъзнете в менюто.
  3. Задайте имена и изображения за тези елементи от менюто.
  4. Свържете тези елементи от менюто към IBActions във вашето разширение WatchKit.

Като алтернатива можете да задавате и изчиствате елементи от менюто програмно от вашето разширение WatchKit, като описани в документацията на WatchKit API. Има четири подходящи метода на WKInterfaceController. В Swift:

func addMenuItemWithItemIcon(_ itemIcon: WKMenuItemIcon,
                   title title: String,
                  action action: Selector)

func addMenuItemWithImageNamed(_ imageName: String,
                     title title: String,
                    action action: Selector)

func addMenuItemWithImage(_ image: UIImage,
                title title: String,
               action action: Selector)

func clearAllMenuItems()

В Objective-C:

- (void)addMenuItemWithItemIcon:(WKMenuItemIcon)itemIcon
                      title:(NSString *)title
                     action:(SEL)action

- (void)addMenuItemWithImageNamed:(NSString *)imageName
                        title:(NSString *)title
                       action:(SEL)action

- (void)addMenuItemWithImage:(UIImage *)image
                   title:(NSString *)title
                  action:(SEL)action

- (void)clearAllMenuItems

Пълната информация е в документацията на API за Конфигуриране на контекстното меню в WatchKit.

Първият път, когато създадете едно от тези менюта, особено ако го направите в Interface Builder, може да ви се стори, че трябва да сте пропуснали стъпка, тъй като не е трябвало да свързвате менюто с нещо, еквивалентно на разпознаване на жестове с принудително докосване , но когато го опитате, просто ще откриете, че работи. Възможно е това да продължи да бъде единственият достъп, който разработчиците на трети страни имат за принудително докосване, дори след като по-късно през 2015 г. имаме възможността да създаваме собствени приложения за часовника.

person Duncan Babbage    schedule 12.01.2015
comment
И как да определите различни изображения за 38 мм и 42 мм? - person frankish; 13.08.2015

нарича се контекстно меню. можете да направите това с помощта на addMenuItem или в разкадровките добавяте меню, което идва с елемент, и след това добавяте допълнителни елементи.

person Paul Yorke    schedule 12.12.2014