简体   繁体   中英

UIView Will Not Resize

My storyboard elements are subviews of containerView and containerView is a subview of the main view. I am trying to resize the height of my container view when an ad is available to show but I cannot get that to work. I am able to offset the view up, but I am not able to resize it. I have seen quite a bit a posts about this, but all suggestions I've read basically say to confirm Autolayout is not checked. I have confirmed that Autolayout is not checked in each element of my storyboard but still am not having success with this. The ad banner (placed just off screen at [0, 480] pops up nicely from the bottom just like I want it to, but it covers up my storyboard elements which is just plain UNACCEPTABLE. I will not stand for this! I need some help guys and gals…Please see code below:

-(void)bannerViewDidLoadAd:(ADBannerView *)banner
{
    if (_bannerIsVisible == NO)
    {
        NSLog(@"Ad Loaded");

        [UIView beginAnimations:@"animateAdbannerOn" context:nil];

        //_containerView.frame = CGRectOffset(_containerView.frame, 0, -50);

        _containerView.frame = CGRectMake(_containerView.frame.origin.x,

                                 _containerView.frame.origin.y,

                                 _containerView.frame.size.width,

                                 _containerView.frame.size.height-50);


        banner.frame = CGRectOffset(banner.frame, 0, -50);

        [UIView commitAnimations];

        _bannerIsVisible = YES;
    }
}

Try it like this:

-(void)bannerViewDidLoadAd:(ADBannerView *)banner
{
if (_bannerIsVisible == NO)
{
    NSLog(@"Ad Loaded");

    [UIView beginAnimations:@"animateAdbannerOn" context:nil];

    //_containerView.frame = CGRectOffset(_containerView.frame, 0, -50);

    CGRect frame = CGRectMake(_containerView.frame.origin.x,

                             _containerView.frame.origin.y,

                             _containerView.frame.size.width,

                             _containerView.frame.size.height-50);

    [_containerView setFrame:frame];

    CGRect frame2 = banner.frame;
    frame2.origin.x = 0;
    frame2.origin.y = -50;
    [banner setFrame:frame2];

    [UIView commitAnimations];

    _bannerIsVisible = YES;
}
}

You have just changed the frame of your containerView . This does not in any way change the frames of the subviews of containerView . You either have to make containerView a scrollview or change the frames of every component.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM