UIToolbar над пользовательским UIPickerView не получает прикосновения - PullRequest
0 голосов
/ 21 марта 2012

Я разделил на подклассы UIPickerView , чтобы добавить немного больше функциональности (я на 99% уверен, что это не имеет никакого отношения к этому вопросу).В drawRect я добавил панель инструментов, чтобы немного упростить удаление панели инструментов, проблема в том, что ни UIToolbar, ни UIBarButtonItem внутри панели инструментов не получают прикосновения.Это почти как если бы представление было «невидимым» в том смысле, что касания перенаправляются в представление позади него (UITableView).Я знаю, что мог бы просто сделать «контрольное» представление, которое удерживает как инструмент выбора, так и панель инструментов.Но я просто хотел узнать, есть ли способ сделать это без создания другого представления?

Вот мой код drawRect:

- (void)drawRect:(CGRect)rect
{

    if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {

        pickerToolbar = [[UIToolbar alloc] initWithFrame: CGRectMake(0, 0, self.frame.size.width,  40)];


        UIBarButtonItem *closeButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem: UIBarButtonSystemItemDone target: self.delegate action: closeAction];

        [pickerToolbar setItems: [NSArray arrayWithObject: closeButton]];

        [self addSubview: pickerToolbar];
    }
}

Вот фотография:

My custom UIPicker

1 Ответ

1 голос
/ 21 марта 2012

Никогда, никогда не делай этого.Вы добавляете новое подпредставление каждый раз, когда выбирается сборщик!

Если ваше представление выбора представляет собой входное представление текстового поля, просто создайте панель инструментов и добавьте ее в качестве вспомогательного представления ввода.Затем он появится над сборщиком для вас.Это стандартный способ достижения такого поведения.

...