2013-04-17 2 views
3

Я пытаюсь понять, как Facebook Messenger создает кнопку на кнопке экрана, которая находится сверху UITableView и следует за прокруткой?Создать кнопку поверх UiTableView

Picture taken from the iTunes Store

Я хочу осуществить синюю кнопку в правом нижнем углу. Каким должен быть мой подход к достижению чего-то подобного?

Любой толчок в правильном направлении будет высоко оценен.

ответ

3

Есть несколько бульваров принять при добавлении вида наложения:

  • Как подвид оберточного UINavigationController, что означает, что она не будет прокручиваться с содержимым таблицы

  • в разделе сноске простого стиля UITableView, который имеет только один раздел

  • Как подвид из UITableView и использовать UIScrollViewDelegate «s scrollViewDidScroll: -с ontinuously обновления кадра мнение, как свиток пользователя это таблица (которая делает вид, оставаться неподвижным)

+0

jszumski Я не могу установить 2-й вариант, так как у меня несколько разделов. и поскольку я определенно хочу, чтобы кнопка прокручивалась, я не могу использовать первый вариант, а третий - вроде излишнего, как вы думаете? – Jonathan

+0

Вы * сделаете * хотите, чтобы кнопка прокручивалась вне поля зрения, если содержимое прокручивается? Номер 3 на самом деле не слишком переполнен, я использовал его в нескольких приложениях и его основу для того, как ОС в стиле простого стиля реализованы. – jszumski

+0

В качестве комментария - если вы прикрепляете к нему сегу, то убедитесь, что вы помните, что при срабатывании segue он все равно относится к предыдущей позиции контроллера, поэтому вам нужно будет обновить кнопку с новым селектором до точки на новый контроллер просмотра, если вы не хотите странностей с вашим навигатором. –

2

В вашем UIViewController подкласс этого:

[self.view insertSubview:myButton aboveSubview:self.tableView]; 

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

+0

VinceBurn, но это не прокрутит вниз, хотя, не так ли? – Jonathan

+0

@Jonathan Это не будет прокручиваться. На скриншоте это не похоже на прокрутку. Если вы хотите прокрутить, вам нужно находиться внутри ScrollView (помните, что TableView наследуется от ScrollView) или нужно перемещать с помощью scrollViewDidScroll. –

1

Вы можете сделать это в UITableViewController легко

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 
[appDelegate.window addSubView:myButton]; 

Я попробовал это, и она работала для меня , Удачи! :)

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