Для чего possibleTitles UIBarButtonItem?

tl; dr Не компенсируйте разницу между iPad mini и iPad 2, если вы не компенсируете между толстыми и тощими пальцами.

Apple, кажется, намеренно пытается не дать вам понять разницу. Apple, похоже, не хочет, чтобы мы писали другой код для версий iPad разного размера. Я не являюсь частью Apple, я точно не знаю, я просто говорю, что это то, на что это похоже. Возможно, если сообщество разработчиков предложит модный детектор для iPad mini, Apple может сознательно сломать этот детектор в будущих версиях iOS. Apple хочет, чтобы вы установили минимальный целевой размер для 44 точек iOS, и iOS отобразит его в двух размерах: больший размер iPad и меньший размер iPhone / iPad mini. 44 балла - это достаточно щедро, и ваши пользователи наверняка узнают, находятся ли они на iPad меньшего размера, поэтому могут компенсировать это самостоятельно.

Я предлагаю вернуться к указанной вами причине, по которой вы просите детектор: настроить размер цели для удобства конечного пользователя. Принимая решение о разработке одного размера для большого iPad и другого размера для маленького iPad, вы решаете, что у всех людей одинаковые размеры пальцев. Если ваш дизайн достаточно плотный, чтобы разница в размерах с iPad 2 и iPad mini имела значение, то размер пальцев между мной и моей женой будет иметь большее значение. Так что компенсируйте размер пальца пользователя, а не модель iPad.

У меня есть предложение, как измерить размер пальца. Я нативный разработчик iOS, поэтому я не знаю, можно ли это сделать в HTML5, но вот как я могу измерить размер пальца в нативном приложении. Я бы попросил пользователя сжать два объекта вместе, а затем измерить, насколько близко они собираются вместе. Маленькие пальцы приблизят объекты друг к другу, и вы можете использовать это измерение для получения коэффициента масштабирования. Это автоматически подстраивается под размер iPad. Один и тот же человек будет иметь большее измерение точек экрана на iPad mini, чем на iPad 2. Для игры вы можете назвать это шагом калибровки или даже не вызывать его. Имейте это в качестве начального шага. Например, в стрелялке игрок должен сунуть боеприпасы в пистолет с прижимным движением.

8
задан Boon 24 June 2009 в 05:33
поделиться

2 ответа

Я просмотрел документацию и сказал, что на него есть ссылка в демонстрации AccelerometerGraph . Итак, я взглянул на демонстрацию.

Похоже, прежде чем добавить его на панель, вы можете установить свойство possibleTitles на набор строк, которые может отображать кнопка. Я предполагаю, что это так, что кнопка принимает ширину самой широкой строки, поэтому, когда вы меняете заголовок, ширина кнопки не меняется.

19
ответ дан 5 December 2019 в 07:36
поделиться

Я написал небольшой код, чтобы проверить это, и, как сказал Эд, кнопка будет настолько широкой, насколько это необходимо, чтобы соответствовать самой длинной строке в NSSet , заданном для possibleTitles

UIBarButtonItem *myButton = [[UIBarButtonItem alloc] initWithTitle:@"Bye"
            style:UIBarButtonItemStyleBordered
            target:self
            action:@selector(sayGoodnight)];
myButton.possibleTitles = [NSSet setWithObjects:@"So Long", @"Farewell", @"Auf Wiedersen, Good Night", nil];
[self setToolbarItems:[NSArray arrayWithObjects:myButton, nil] animated:NO];
[myButton release];

Кнопка установлена ​​достаточно широко, чтобы соответствовать надписи «Auf Wiedersen, Good Night».

3
ответ дан 5 December 2019 в 07:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: