Как реализовать кнопку наложения, которая плавает над представлением контента

в некоторых приложениях для iPhone я видел кнопку, которая плавала над окном просмотра контента, например. в приложении EyeEm. Когда пользователь прокручивает содержимое, кнопка остается там, где она есть, и по-прежнему является элементом взаимодействия. над просмотром контента">

Как мне это реализовать?

Мой подход был бы таким:

  • Создание представления с содержимым
  • Поставь на него кнопку
  • Но как сделать кнопку плавающей?

редактировать:

Плавающее, кажется, поведение по умолчанию. Интересно, что addSubview и insertSubview ведут себя одинаково при размещении кнопки... оба перемещаются по содержимому.

- (void)addOverlayButton {
UIButton *oButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[oButton addTarget:self
           action:@selector(aMethod:)
           forControlEvents:UIControlEventTouchDown];
[oButton setTitle:@"Show View" forState:UIControlStateNormal];
oButton.frame = CGRectMake(80.0, 210.0, 160.0, 40.0);
[self.view addSubview:oButton];
//[self.view insertSubview:oButton aboveSubview:_scrollView];  // same result as addSubview. 
// Both solutions let the button float over the content. 
}

person jerik    schedule 11.06.2013    source источник


Ответы (2)


Добавьте подпредставление к представлению содержимого вашего окна с помощью метода insertSubview:aboveSubview: с вашей кнопкой и прокруткой в ​​​​качестве аргументов, но будьте осторожны: если два одноуровневых представления имеют прозрачность, результирующее поведение рисования не определено.

person silvansky    schedule 11.06.2013
comment
addSubview, похоже, имеет плавающее поведение по умолчанию. см. мой обновленный вопрос - person jerik; 11.06.2013

если вы используете раскадровку, просто добавьте над ней кнопку, например that

если вы хотите сделать с кодом insertSubview:buttonView aboveSubview:scrollView

не имеет значения его вид таблицы или прокрутки

person p.balmasov    schedule 11.06.2013
comment
работает, если в области контента все создается раскадровкой. Но у меня есть контент, созданный программно, и в этом случае кнопка не отображается. Я предполагаю, что он скрыт под программным содержанием. Возможно, мне нужно как-то поднять кнопку вверх, чтобы слой был над запрограммированным контентом. - person jerik; 11.06.2013