2014-12-29 2 views
13

Можно ли настроить способ отображения свойств и/или управления объектами @IBInspectable в инспекторе атрибутов? Например, у меня есть CGFloat свойства «Накладка Альфа», который показывает в инспекторе, например так:Конфигурирование элементов управления инспектором @IBInspectable Attribute

enter image description here

Проблема заключается в том, что Регулировочные стрелках вверх/вниз обновить только в интеграле (+/- 1) шаги. Я хочу, чтобы они обновлялись небольшими шагами, скажем, +/- 0,05 приращений. Есть ли способ сделать это?

Как насчет других свойств элементов управления? Можете ли вы отобразить слайдер для CGFloat вместо числового поля? Можете ли вы добавить всплывающую подсказку? Можете ли вы добавить статический описательный текст?

Просто интересно, как я могу настроить дисплей. Я пытаюсь понять, как далеко я могу продвигать IBDesignable, превращая IB в инструмент разработки пользовательского интерфейса.

+0

Вы когда-нибудь находили решение этого вопроса? – epologee

+1

Нет, я так и не сделал ... –

+0

Слишком плохо, спасибо за сообщение, хотя! – epologee

ответ

0

Проблема заключается в том, что стрелки вверх/вниз регулировки обновляются только в интегральных (+/- 1) шагах. Я хочу, чтобы они обновлялись небольшими шагами, скажем, +/- 0,05 приращений. Есть ли способ сделать это?

Отсутствие какой-либо документации, объясняющей, как это сделать, и того факта, что ваш вопрос составляет 3+ лет, предполагает, что вы не можете фактически изменить значение приращения шага для ваших проверяемых свойств в IB.

Что вы делаете может, однако, это создать другое свойство, основанное на том, которое вы хотите настроить, и масштабировать его так, чтобы приращения 1 соответствовали шагам нужного размера. Например, дизайнеры, вероятно, привыкли думать о непрозрачности в процентном отношении, так что вы можете создать alphaPercent свойство с добытчиками и сеттеров, что масштабировать alpha свойство вверх 100:

@IBInspectable var alphaPercent : CGFloat { 
    get { 
     return self.alpha * 100 
    } 
    set(percentage) { 
     self.alpha = percentage/100 
    } 
} 

Если добавить, что свойство @IBDesignable, вы сможете использовать степлер, чтобы изменить непрозрачность вида на 1% при каждом нажатии.

Как насчет других свойств элементов управления? Можете ли вы отобразить слайдер для CGFloat вместо числового поля? Можете ли вы добавить всплывающую подсказку? Можете ли вы добавить статический описательный текст?

В настоящее время это невозможно. Если у вас есть долгосрочная потребность в меньшем количестве технических пользователей для настройки пользовательского интерфейса (например, если вы снимаете одно и то же базовое приложение для нескольких разных клиентов), может возникнуть смысл создать версию вашего приложения, которая обеспечивает режим редактирования. Взгляд на Tweaks framework from Facebook может дать вам некоторые идеи.