mtonio91/AMSmoothAlert

Landscape support?

Opened this issue · 7 comments

comes in from the top and sideways of course. Any places I can start looking to fix that?

Also I added a dismiss delegate.

I'm not a big fan of landscape mode on iphone, even more for pop ups/alerviews that's why i haven't implemented it but i could make it compatible.

Thanks! I have an app that presents a lot of stuff in landscape (movies, etc) and it would take your cool api over the top!
Im looking through it now to see where I could add it

If you want to figure it out from yourself, you can have a look to the relative coordinates of the alertview which are based on window frame and not and self.view frame.

And then do a pull request :)

I could use the landscape-support to, specially for iPad-apps...

+1 for iPad / landscape support - anyone have any hack's they can share ?

+100 for iPad / landscape support - does anyone have any hack they can share ?

This worked for me....

in AMSmoothAlertView.m...
add

#define kCircleViewTag 9999

at the top as a const

at the bottom of

  • (void) _initViewWithTitle:(NSString )title andText:(NSString *)text andCancelButton:(BOOL)hasCancelButton forAlertType:(AlertType)type andColor:(UIColor) color
    {
    //----snipped for brevity ----//
    [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
    [[NSNotificationCenter defaultCenter] addObserver: self
    selector: @selector(deviceOrientationDidChange:)
    name: UIDeviceOrientationDidChangeNotification
    object: nil];
    }
  • (void)deviceOrientationDidChange:(NSNotification *)notification {
    CGRect screenRect = [[UIScreen mainScreen] bounds];
    self.frame = screenRect;
    alertView.center = self.center;
    CGRect circleViewFrame = [self viewWithTag:kCircleViewTag].frame;
    circleViewFrame.origin.x =screenRect.size.width/2;
    circleViewFrame.origin.y =((screenRect.size.height/2)-alertView.frame.size.height/2);
    [self viewWithTag:kCircleViewTag].frame = circleViewFrame;
    }
    -(void) dealloc{
    [[NSNotificationCenter defaultCenter] removeObserver: self];
    [[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications];
    }

the in i add the tag defined at the top to the circle mask view

  • (void) circleSetupForAlertType:(AlertType) type andColor:(UIColor*) color
    {

    UIView * circleMask = [[UIView alloc]initWithFrame:CGRectMake([self screenFrame].size.width/2, (([self screenFrame].size.height/2)-alertView.frame.size.height/2) , 60, 60)];
    circleMask.tag = 9999;

//----snipped for brevity ----//

}

P.S. I utterly ditched the background blur view, so this "hack" or "patch" doesnt pay any attention to the blur view/variable.