2014-12-09 2 views
1

Итак, я нашел очень привлекательную всплывающую боковую панель на Github. Однако я смог использовать его только как всплывающее окно (например, снимок экрана ниже). Я хочу добавить его в свой ViewController как левую панель (как и второй скриншот), но не нашел способ сделать это. Любое предложение? enter image description here enter image description here Обновление: Это мой viewDidLoad. Я попытался [self.view addSubview:callout.contentView], но это не сработалоИспользуйте RNFrostedSidebar как часть UIViewController

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    NSArray *images = @[ 
         [UIImage imageNamed:@"Home.png"], 
         [UIImage imageNamed:@"Me.png"], 
         [UIImage imageNamed:@"Search.png"], 
         [UIImage imageNamed:@"Trends.png"], 
         [UIImage imageNamed:@"Setting"], 
         ]; 

    RNFrostedSidebar *callout = [[RNFrostedSidebar alloc] initWithImages:images]; 
    callout.delegate = self; 

    [self.view addSubview:callout.contentView]; 

    [callout show]; } 

И это RNFrostedSidebar API

RNFrostedSidebar.h RNFrostedSidebar.m

+0

почему вы не можете добавить экземпляр RNFrostedsidebar к вашему UIView? – iOSdev

+0

вы создаете объект для popover right, следуйте той же процедуре и добавьте его в свой вид – iOSdev

+0

в матовой боковой панели, если у вас есть какие-либо методы для отображения и скрыть только метод отображения вызовов в viewdidload и не скрывать его – iOSdev

ответ

2

Почему бы вам не использовать простой UIView для этой цели? RNFrostedSideBar - слишком много пользовательских решений для вашей потребности.

Просто установите достаточное количество ограничений макета и измените значение sideBar значение ширины ограничения ширины (анимированное). Взгляните на Auto Layout Guide, это поможет вам.

Я попытаюсь объяснить свое видение вашего UIViewController просмотреть содержание

+-------------------------+ 
|sideBar| contentView | 
|  |     | 
|  |     | 
|  |     | 
|  |     | 
|  |     | 
|  |     | 
+-------------------------+ 
<--W--> 

Где W широтно-раскладка ограничение подключен к @property (weak) IBOutlet NSLayoutConstraint *sideWidthConstraint. Все остальные ограничения для sideBar и contentView, такие как Leading, Trailing, Top, Bottom должны быть установлены на ноль. Обратите внимание на ограничения между представлениями. Она должна быть равна нулю также:

+---------------------------+ 
| sideBar |-0-| contentView | 

Если вам необходимо изменить sideBar ширину (и уменьшить одну из contentView), просто изменить sideWidthConstraint постоянное значение:

[UIView animateWithDuration:0.3 animations:^{ 
    self.sideWidthConstraint.constant = expanded ? 50 : 0; // expanded - YES of NO 
    [self.view layoutIfNeeded]; 
}]; 
+0

Мне нравится анимация 'RNFrostedSideBar', поэтому я хочу ее использовать. Большое спасибо за ваше объяснение, но – Harry

+0

Нет проблем, найдите фрагмент анимации из 'RNFrostedSideBar' и примените его к вашим элементам бара. Это намного проще, чем приучить решение. Удачи. – Astoria

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