Я хочу сделать что-то похожее на выпадающее меню на этих снимках экрана. Как мне это сделать?
Когда вы нажимаете заголовок, стрелка указывает вверх, а меню падает. Приложение - это меню колледжа.
Я хочу сделать что-то похожее на выпадающее меню на этих снимках экрана. Как мне это сделать?
Когда вы нажимаете заголовок, стрелка указывает вверх, а меню падает. Приложение - это меню колледжа.
Для выполнения этой функции в вашем приложении есть много коко-контролеров:
Элементы управления DropDown для iOS
Но я думаю, что lmdropdownview является самым точным.
Моя ошибка, btnavigationdropdownmenu ЕГО наиболее точная для того, что вы просите (согласно вашим экранам).
Реализация (Swift) [См. readme для более подробных инструкций и настроек]:
let items = ["Most Popular", "Latest", "Trending", "Nearest", "Top Picks"]
let menuView = BTNavigationDropdownMenu(frame: CGRectMake(0.0, 0.0, 300, 44), title: items.first!, items: items, containerView: self.view)
self.navigationItem.titleView = menuView
menuView.didSelectItemAtIndexHandler = {(indexPath: Int) -> () in
println("Did select item at index: \(indexPath)")
self.selectedCellLabel.text = items[indexPath]
}
Надеюсь, что это поможет.
EDIT:
Спасибо за 'rsc' за информацию, theres objective-c версия этого cocoacontrol:
#import "PFNavigationDropdownMenu.h"
-(void)viewDidLoad{
PFNavigationDropdownMenu *menuView = [[PFNavigationDropdownMenu alloc]initWithFrame:CGRectMake(0, 0, 300, 44)title:items.firstObjects items:items containerView:self.view];
menuView.didSelectItemAtIndexHandler = ^(NSUInteger indexPath){
NSLog(@"Did select item at index: %ld", indexPath);
self.selectedCellLabel.text = items[indexPath];
};
self.navigationItem.titleView = menuView;
}
Возможное обходное решение, если вы предпочитаете делать это вручную:
Создайте два UIButton
(вверх/вниз), назначьте первый для navigationItem.titleView
, добавьте действие для UIControlEventTouchUpInside
в эту проверку действий, если состояния меняются на разложение или сбрасывание и зависят от этого добавления/удаления UITableView
с пустым источником данных в верхней части вашего UIViewController
view
, установите правильный кадр. Затем обновите источник данных и перезагрузите анимацию строки UITableViewRowAnimationBottom
или UITableViewRowAnimationTop
в зависимости от того, будет ли она расширяться или сворачиваться. Замените кнопку вторым.