Слепой программист: проектирование интерфейса в Xcode без возможности визуального позиционирования элементов пользовательского интерфейса
Я новичок в программировании на Mac и iOS и недавно решил серьезно заняться разработкой приложений для обеих платформ. Первым шагом, который я предпринял, была регистрация на программы разработчика Mac и iOS, загрузка Xcode и изучение книги о Objective-C. Я провел последние 6 недель, познакомившись с Objective-C, его синтаксисом, концепциями и базой Foundation, и был чисто развивающим приложениями командной строки для этих целей.
Теперь следующий шаг выглядит как Cocoa и разрабатывает приложения, предлагающие графические интерфейсы, которые я сейчас просматриваю. Теперь, вот проблема, с которой я сталкиваюсь: поскольку я полностью слеп, я не вижу визуально экран. Таким образом, я использую VoiceOver, устройство для чтения с экрана, встроенное в OS X и iOS. Возможно, некоторые из вас разработчики слышали о VoiceOver в какой-то момент, так как Apple указала множество рекомендаций по доступности, которые касаются VoiceOver. В этой заметке, спасибо всем вам, кто соблюдает эти рекомендации, ваши усилия очень ценятся!!!: -)
Что касается Xcode, он действительно хорошо работает с VoiceOver (VO). Добавление новых элементов пользовательского интерфейса также не имеет большого значения, я могу просто скопировать их из библиотеки и вставить их в представление. Однако я не могу перетащить их и настроить их привлекательным способом, или, по крайней мере, я еще не нашел способ сделать это, пока я только начинаю!
Теперь мне действительно хотелось бы узнать, есть ли какой-либо "текстовый" способ компоновки элементов пользовательского интерфейса. Я знаю, что у инспектора есть множество вариантов, но я не уверен, что если кто-нибудь из них разрешит мне, скажем, изменить координаты элемента пользовательского интерфейса вручную. Кроме того, я читал о новых ограничениях, которые помогают создать согласованный макет, но на данный момент я не очень-то знаком с тем, как они могут быть использованы или если они вообще будут полезны в моем случае.
Кроме того, я понимаю, что создание интерфейса, который на 100% привлекателен для знакомого конечного пользователя, может быть невозможен для меня, так как мне трудно решить выбор цвета или создать логотип. Таким образом, мне, вероятно, придется нанять кого-то для этих вещей. Однако, если бы я мог просто указать макет примерно, это уже мне очень помогло!
Спасибо за любые идеи/предложения: -)
Робин
Ответы
Ответ 1
Я не слепой пользователь, но я работал с VoiceOver, поэтому, надеюсь, некоторые из них помогут. Я делаю это ответ сообщества, поэтому не стесняйтесь добавлять подсказки из своего собственного опыта, если вы работали с макетом пользовательского интерфейса в Xcode с VoiceOver.
При редактировании пользовательского интерфейса в Xcode есть инспектор, в котором вы можете изменить размер и положение просмотров. Ярлык для доступа к инспектору размеров - Alt + Command + 5. Тот же ярлык работает с VoiceOver.
Вы сказали, что вы кодируете как iOS, так и OS X. На iOS ось y начинается сверху и указывает вниз (поэтому более высокое значение y означает, что на экране ниже). Это означает, что x и y определяют верхний левый угол представления, а ширина и высота простираются вправо и вниз оттуда.
В OS X это наоборот. Ось y начинается снизу, а более высокое значение y означает, что на экране выше. В обоих случаях ось x идет слева направо. Это означает, что x и y задают нижний левый угол, а ширина и высота простираются вправо вверх.
Кроме того, каждое представление позиционируется относительно их родителя вместо абсолютных координат. Это означает, что если вы позиционируете представление при x = 10 и y = 30, а затем расположите другое представление внутри, то при x = 5 и y = 10 оно будет иметь абсолютное положение на экране, которое равно x = 15 и y = 40.
Если вы можете представить макет в своей голове, тогда вы сможете сделать это так, но это может быть трудно сделать.
Update
В верхней части иерархии эти координаты относятся к размеру окна. На iOS у вас фиксированные размеры (320 × 480 для iPhone и 1024 × 768 для iPad). В зависимости от того, находится ли устройство в ландшафтном или портретном, одна из них - ширина, а другая - высота. Вы обычно вычитаете 20 пикселей от высоты, чтобы учесть строку состояния. Таким образом, координата, где y = 0, будет находиться непосредственно под строкой состояния.
В OS X вы можете самостоятельно изменить размер окна. Я попытаюсь объяснить, где его найти.
На верхнем уровне. Перейдите в "группу исходного кода" и взаимодействуйте с ним. Там вы должны найти "группу навигационных панелей" и "таблицу" и "область прокрутки". Взаимодействуйте со столом. В этой таблице вы должны найти список заполнителей и список объектов. Одним из объектов будет "Окно". С выбранным окном все инспекторы изменят свойства окна. Вы можете быстро перейти к Инспектору размеров, перейдя на любого инспектора, а затем обратно в Инспектор размеров. Для типа exaple Alt + Command + 4, а затем Alt + Command + 5. Первыми двумя элементами в инспекторе размеров должны быть ширина и высота окна.
Ответ 2
Это обсуждение неизбежно уйдет с темы, но вот мои идеи:
-
Подумайте о специализации в чем-то другом. Программист может работать так много. Многие, если не большинство, программисты могут наслаждаться долгой и успешной карьерой, не имея необходимости создавать какие-либо элементы пользовательского интерфейса. Честно говоря, я не думаю, что это особенно интересно, если у вас не будет больше дизайнерского мышления.
-
В качестве альтернативы, любой инструмент, который вы используете для упорядочивания элементов, этот макет, вероятно, сохраняется в каком-то файле, возможно, в некотором стиле XML. Найдите этот файл и отредактируйте его.
-
Если вы хотите очень хорошо разбираться в элементах пользовательского интерфейса, подумайте о том, чтобы нанять нескольких человек, чтобы сделать несколько мероприятий для вас. Затем проанализируйте числа и придумайте какую-то формулу, которая будет хорошей эвристикой для такой договоренности. Или, возможно, кто-то уже придумал такую формулу.