2009-09-09 4 views
3

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

Поэтому я решил настроить то, что я хотел в наконечнике, а затем создал контроллер вида для обработки его поведения. На самом деле это действительно хорошо работает, так что принимайте за 2 вещи.

1) Для того, чтобы загрузить мой «таможенный контроль» в другой перо, мне нужно сделать это с помощью кода, как это ...

MaxMinSliderViewController *feeMaxMinSlider = 
    [[MaxMinSliderViewController alloc] init]; 
[self.view addSubview:feeMaxMinSlider.view]; 
feeMaxMinSlider.view.frame = CGRectMake(20, 20, 280, 54); 

... вместо перетаскивания в другие наконечниками, как обычные элементы управления IB , Есть ли простой способ сделать это?

2) Во всем моем чтении об этом кажется, что я должен был (чтобы сделать это правильно) подкласс UIView, а не UIViewController. Я не мог правильно настроить UIView и заставить его работать.

Мысли?

+0

Вы нашли ответ? – JoePasq

+0

К сожалению, нет, но с тех пор было несколько версий XCode и iOS, поэтому, возможно, оно было добавлено. Но сомневаюсь. – rob5408

ответ

3

вместо перетаскивания в другие перья, как и обычные элементы управления IB. Is есть простой способ сделать это?

Nope! Там всего an incredibly hard way!

+0

Мега голоса за «невероятно трудный путь» HA HA Good Stuff. – Jordan

2

Предполагая, что вам удастся преобразовать свой класс в пользовательский UIView, а не UIViewController, вы можете сделать это довольно легко в Interface Builder (в зависимости от того, какой метод инициализации имеет пользовательский элемент управления).

Внутри Interface Builder перетащите простой старый UIView из окна библиотеки на ваш вид и поместите его/размер по мере необходимости.

Затем, выбрав UIView, перейдите на вкладку «Идентификация» окна «Инспектор» (вкладка с маленьким (i) значком на ней) и измените ее с UIView на имя вашего пользовательского класса. Это вызывает экземпляр экземпляра вашего настраиваемого класса, когда загружается NIB, а не пустой UIView.

Затем вы можете подключить вид к IBOutlet и так далее, как обычно.

Преимущество этого подхода заключается в возможности позиционирования и размера вашего управления визуально и т. Д. Однако он отображается только как прямоугольник, и вы не получаете возможности графически настраивать дополнительные свойства вашего элемента управления, как вы бы с помощью UIButton или аналогичного элемента управления, для которого Interface Builder имеет дополнительную поддержку.

Я нахожу эту технику замечательной, так как я не настолько наглядный мыслитель, и мне трудно представить, как все будет выглядеть, когда я прочитаю раздел кода, содержащий много кадров = CGRectMake (20, 20, 280, 54) и т. Д. Умение делать это визуально с помощью мыши намного лучше для меня.

+0

Спасибо! Я сделаю это. – rob5408

0

Существует Руководство по программированию плагинов интерфейса Builder, но в нем упоминается только Mac OS X, а не iPhone.

Кроме того, с XCode 3.2.1 существует только новый шаблон проекта для создания подключаемого модуля Mac OS X IB; нет такого шаблона проекта для iPhone (Cocoa Touch). Поэтому я предполагаю, что это не применимо для iPhone.

Смежные вопросы