2015-10-14 2 views
-2

Я хочу, чтобы показать вид, который содержит UITableView как вид сверху, который будет показывать комментарии, размещенные пользователями & UITextField вместе с кнопкой ниже которой будет ввести комментарий & добавить его на этот пост, у меня есть что в приложении facebook, когда я нажимаю кнопку комментариев, появляется поп-шоу. Так как я могу добиться наилучшего пути. Я знаю, что могу это сделать, добавив представление в родительском представлении с анимацией. Но это приведет меня к тому, чтобы добавить еще & более настраиваемый код. Есть ли другой способ, с помощью которого я могу реализовать это? some thing like thisКак показать окно комментариев как всплывающее окно в iOS?

+0

use textview для вашей концепции –

+0

Я здесь говорю о том, как я могу показать всплывающее окно – Techiee

+0

Вы ищете решение для iPhone или iPad? Для iPad существует существующий API, где вы можете представить контроллер представления по модулю. Но для iPhone нет никого, вам нужно использовать стороннюю библиотеку или свою собственную. – GoodSp33d

ответ

0

Если для IPad (как на фото), попытайтесь создать новый UIViewController и представить его модально из текущего ViewController но установить UIModalPresentationStyle свойство UIModalPresentationFormSheet.

+0

Что делать, если устройство не является ipad, как оно будет отображаться на iPhone. – Techiee

2

На PopUp слишком много библиотеки, которую вы можете добавить в качестве своей потребности. лучшим вариантом является -

1. https://github.com/jmascia/KLCPopup

и огромная библиотека с открытым исходным кодом библиотеки IOS

2. https://www.cocoacontrols.com/search?q=popup

попробовать кого-нибудь, надеюсь, это поможет вам.

UPDATE Программным способом

добавить эти свойства: -

@property (strong, nonatomic) UIView *container; 
@property (strong, nonatomic) UIView *pop; 

@synthesize их.

установка PopUp с эффектом тени: -

-(void)setViewPop{ 
    _container = [[UIView alloc] initWithFrame:self.view.frame]; 
    [self.view addSubview:_container]; 
    //self.backgroundDimmingView = [self buildBackgroundDimmingView]; 
    //[self.container addSubview:self.backgroundDimmingView]; 

    pop = [[UIView alloc] initWithFrame:CGRectMake(0, self.view.frame.size.height , self.view.frame.size.width-80, self.view.frame.size.height/1.5-40)]; 
    pop.backgroundColor = [UIColor orangeColor]; 
    pop.layer.cornerRadius = 10; 

    UIBezierPath *shadowPath = [UIBezierPath bezierPathWithRect:pop.bounds]; 
    pop.layer.masksToBounds = NO; 
    pop.layer.shadowRadius = 5; 
    pop.layer.shadowColor = [UIColor whiteColor].CGColor; 
    pop.layer.shadowOffset = CGSizeMake(0.0f, 5.0f); 
    pop.layer.shadowOpacity = 0.5f; 
    pop.layer.shadowPath = shadowPath.CGPath; 

    [self.container addSubview:pop]; 
    [self setUpPop]; 

    pop.center = self.container.center; 

} 

содержание зрения Popup; -

-(void)setUpPop{ 
    self.pop.frame = CGRectMake(0, 0, self.view.frame.size.width-80, self.view.frame.size.height/1.5-40); 


    UILabel *title = [[UILabel alloc] initWithFrame:CGRectMake(90, 10, 100, 20)]; 
    title.textColor = [UIColor whiteColor]; 
    title.textAlignment = NSTextAlignmentCenter; 
    title.text = @"Choose Date"; 

    [self.pop addSubview:title]; 

    UIButton *cancelbutton = [[UIButton alloc] initWithFrame:CGRectMake(0,self.pop.frame.size.height-40, self.pop.frame.size.width/2, 40)]; 
    UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:cancelbutton.bounds byRoundingCorners:(UIRectCornerBottomLeft) cornerRadii:CGSizeMake(10.0, 10.0)]; 

    CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init]; 
    maskLayer.frame = self.view.bounds; 
    maskLayer.path = maskPath.CGPath; 
    cancelbutton.layer.mask = maskLayer; 
    cancelbutton.backgroundColor = [UIColor lightGrayColor]; 
    [cancelbutton setTitle:@"Cancel" forState:UIControlStateNormal]; 
    [cancelbutton addTarget:self 
        action:@selector(cancelbuttonTapped:) 
      forControlEvents:UIControlEventTouchUpInside]; 
    [pop addSubview:cancelbutton]; 

    UIButton *confirmbutton = [[UIButton alloc] initWithFrame:CGRectMake(140, self.pop.frame.size.height-40,self.pop.frame.size.width/2, 30)]; 
    UIBezierPath *maskPath1 = [UIBezierPath bezierPathWithRoundedRect:confirmbutton.bounds byRoundingCorners:(UIRectCornerBottomRight) cornerRadii:CGSizeMake(10.0, 10.0)]; 

    CAShapeLayer *maskLayer1 = [[CAShapeLayer alloc] init]; 
    maskLayer1.frame = self.view.bounds; 
    maskLayer1.path = maskPath1.CGPath; 
    confirmbutton.layer.mask = maskLayer1; 

    confirmbutton.backgroundColor = [UIColor orangeColor]; 
    confirmbutton.alpha=0.8f; 
    [confirmbutton setTitle:@"set Date" forState:UIControlStateNormal]; 
    [pop addSubview:confirmbutton]; 

} 

это анимация, чтобы показать вид; -

- (void)showPopUp{ 

    _container.transform = CGAffineTransformMakeScale(0.01, 0.01); 
    [UIView animateWithDuration:0.5f delay:0 usingSpringWithDamping:0.7f initialSpringVelocity:3.0f options:UIViewAnimationOptionAllowAnimatedContent animations:^{ 
     _container.transform = CGAffineTransformIdentity; 
     [self setViewPop]; 
    } completion:^(BOOL finished){ 
     // do something once the animation finishes, put it here 
    }]; 

} 

вызов -(void)showPopUp метод при нажатии кнопки или в текстовом поле. как ваша потребность.

+0

Что делать, если я не хочу использовать стороннюю библиотеку.Я хочу, чтобы модально представить контроллер представления – Techiee

+0

Apple (существующий API) не поддерживает modal view controller на iPhone. – GoodSp33d

+0

ok, вы можете использовать uiPopOverController для отображения всплывающих окон, а также вы можете добавить представление программно с помощью анимации popUp. –

0

Существует много сторонних библиотек для них. вы можете посмотреть некоторые из них. http://www.code4app.net/category/popupview

Лично я бы рекомендовал CTPopOutMenu. http://www.code4app.net/ios/his-control-is-like-an-UIAlertView-with-button-icon-and-four-basic-layout/54fd4759e24741fd64073341

Я использовал его, и он работал как очарование для меня. Happy Coding .. :)

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