У меня есть (/ had) подкласс класса UITextField
, который имеет пользовательскую кнопку удаления в качестве свойства rightView. Это работает до тех пор, пока я не повернул устройство, а затем кнопка больше не реагирует. Я изменил свой подход и немного «обманул». Теперь я добавляю UIButton
поверх UITextField
в коде. Который также работает до тех пор, пока я не повернул устройство. Я проверил с backgroundColors, если в верхней части кнопки нет других элементов.UIButton потеряет цель после вращения
Я также попытался удалить кнопку и добавить ее снова, когда устройство вращается. Это видно, но действие не срабатывает. Если я запускаю свое приложение в «Портрет» или в «Пейзаже», он работает до тех пор, пока я не поверну устройство.
Как добавить кнопку:
if (!btn_delete)
{
btn_delete = [[UIButton alloc] initWithFrame:CGRectMake(self.view.frame.size.width - 70, (tf_search.frame.size.height/2) - 8, 17, 16)];
[btn_delete setImage:[UIImage imageNamed:@"icon_cross_textfield"] forState:UIControlStateNormal];
[btn_delete addTarget:self action:@selector(clearTextField:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn_delete];
[self.view bringSubviewToFront:btn_delete];
}
else
{
[btn_delete removeFromSuperview];
btn_delete = nil;
}
Метод -(void)clearTextField:(UIButton*)sender
не дозвонились после поворота.
Любые советы приветствуются.
вы должны проверить рамку self.view после вращения. ваш btw_delete стал вне прямоугольника рамки. – stosha
Спасибо за предложение. Я проверил его с помощью журналов, и дело не в этом. – Jasper
Проверьте 'userInteraction' и попробуйте добавить фиксированные значения в рамку кнопки. Если subview выходит за пределы основного вида, штрихи не получают. – NeverHopeless