2015-03-30 3 views
0

Я пытаюсь применить маску к виду бэкэнда, но не могу достичь своего ожидания. Я хочу, чтобы представление выглядело как показано на рисунке ниже. Я попытался реализовать по-своему, но вид маски также появляется снизу. Когда мы щелкаем по опции iCloud в iPad сразу, бэкэнд-просмотр становится серым, а снизу открывается пользовательский вид. Я хочу, чтобы одна и та же функция была реализована в моем приложении. Пожалуйста, помогите мне. Заранее спасибо.Как применить маску к виду бэкэнда?

enter image description here

+0

что вы пробовали/исследовали, что сделали? Что делает ваше решение неправильным? – Wain

+0

@Wain, Спасибо за ответ! Я добавил ответ ниже. –

ответ

1

Я настоятельно рекомендую вам использовать этот красивый и аккуратный код GIT

https://github.com/jmascia/KLCPopup

KLCPopup действительно делает очень хорошую работу в реализации модальных представления с анимацией, размытие, замирание и т.д.

Очень легко настроить и использовать, это просто

«выберите вид»

"выбрать, где вы хотите его"

"Добавить эффекты, если вы хотите, чтобы некоторые"

"вы идете"

весело;)

+0

Большое спасибо! его действительно хорошая статья. –

0

Следуйте ниже шагов, чтобы достичь своей requirements-

1) Создать BaseView & Добавить CustomView в центре BaseView.

2) Установите цвет фона BaseView как черный с непрозрачностью 50%.

3) Держите фактическое преобразование CustomView в переменной, как

CGAffineTransform m_actualTransformOfCustomView = 
m_customView.transform; 

4) Масштабирование CustomView к небольшому 0,01, 0,01, используя

self.m_customView.transform = CGAffineTransformScale(m_actualTransformOfCustomView, 0.01, 0.01); 

4) использование [UIView amimateWithDuration:] API для изменения преобразование пользовательского вида в оригинальное as-

[UIView animateWithDuration:0.5f 
          delay:0 
         options:UIViewAnimationOptionCurveEaseOut 
        animations:^ 
    { 
     self.m_customView.transform = CGAffineTransformScale(m_actualTransformOfCustomView, 1.0, 1.0); 

    } 
        completion:^(BOOL finished) 
    { 

    } 
]; 
} 
0

Мой собственный путь работает теперь правильно. Вот фрагмент кода. Наслаждайтесь!

-(IBAction)show:(id)sender{ 

customView = [[UIView alloc] initWithFrame:self.view.frame]; // Mask View 
customView.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.3f]; 
[self.view addSubview:customView]; 

// customConfigurationView // PopUp view 
CGRect frameCustmVw = customConfigurationView.frame; 
frameCustmVw.origin.y = self.view.frame.size.height; 
frameCustmVw.origin.x = 134; 

customConfigurationView.frame = frameCustmVw; 

[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:0.3]; 

frameCustmVw.origin.y = 200; 
customConfigurationView.frame = frameCustmVw; 

[self.view addSubview:customConfigurationView]; 
[UIView commitAnimations]; 

[txtClientID becomeFirstResponder]; 

} 


-(IBAction)remove:(id)sender{ 

[customView removeFromSuperview]; // Remove mask view 

CGRect CustmFrame = customConfigurationView.frame; 
CustmFrame.origin.y = 200;//self.view.frame.size.height - customConfigurationView.frame.size.height; 
customConfigurationView.frame = CustmFrame; 

[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:0.3]; 
CustmFrame.origin.y = self.view.frame.size.height; 
customConfigurationView.frame = CustmFrame; 
[UIView commitAnimations]; 

} 
0

oky, мой ответ о пути как приложение настройки делает это, это просто ...они просто представляя навигационный контроллер, вот и все, например

просто создать подкласс вид контроллера, например (я назвал его TestViewController) и установить его размер, чтобы freeform в и изменить ширину и высоту рамы для ваших требуемых значений и добавить вид компонентов

будет показывать контроллер с шириной и высотой 540 * 620 с анимацией

все в

- (IBAction)presentAction:(id)sender 
{ 
    TestViewController *testVc = [[TestViewController alloc]initWithNibName:@"TestViewController" bundle:nil]; 
    UINavigationController *aNavController = [[UINavigationController alloc] initWithRootViewController:testVc]; 
    aNavController.modalPresentationStyle = UIModalPresentationFormSheet; 
    aNavController.modalTransitionStyle = UIModalTransitionStyleCoverVertical; 
    [self presentViewController:aNavController animated:YES completion:nil]; 
} 

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

  • Нет связанных вопросов^_^