diff --git a/AwesomeMenu/AppDelegate.m b/AwesomeMenu/AppDelegate.m index 9331adb..2b63c95 100644 --- a/AwesomeMenu/AppDelegate.m +++ b/AwesomeMenu/AppDelegate.m @@ -28,46 +28,56 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:( AwesomeMenuItem *starMenuItem1 = [[AwesomeMenuItem alloc] initWithImage:storyMenuItemImage highlightedImage:storyMenuItemImagePressed ContentImage:starImage - highlightedContentImage:nil]; + highlightedContentImage:nil + itemSize:CGSizeMake(50.0, 50.0)]; + AwesomeMenuItem *starMenuItem2 = [[AwesomeMenuItem alloc] initWithImage:storyMenuItemImage highlightedImage:storyMenuItemImagePressed ContentImage:starImage - highlightedContentImage:nil]; + highlightedContentImage:nil + itemSize:CGSizeMake(50.0, 50.0)]; AwesomeMenuItem *starMenuItem3 = [[AwesomeMenuItem alloc] initWithImage:storyMenuItemImage highlightedImage:storyMenuItemImagePressed - ContentImage:starImage - highlightedContentImage:nil]; + ContentImage:starImage + highlightedContentImage:nil + itemSize:CGSizeMake(50.0, 50.0)]; AwesomeMenuItem *starMenuItem4 = [[AwesomeMenuItem alloc] initWithImage:storyMenuItemImage highlightedImage:storyMenuItemImagePressed ContentImage:starImage - highlightedContentImage:nil]; + highlightedContentImage:nil + itemSize:CGSizeMake(50.0, 50.0)]; AwesomeMenuItem *starMenuItem5 = [[AwesomeMenuItem alloc] initWithImage:storyMenuItemImage highlightedImage:storyMenuItemImagePressed ContentImage:starImage - highlightedContentImage:nil]; + highlightedContentImage:nil + itemSize:CGSizeMake(50.0, 50.0)]; AwesomeMenuItem *starMenuItem6 = [[AwesomeMenuItem alloc] initWithImage:storyMenuItemImage highlightedImage:storyMenuItemImagePressed ContentImage:starImage - highlightedContentImage:nil]; + highlightedContentImage:nil + itemSize:CGSizeMake(50.0, 50.0)]; AwesomeMenuItem *starMenuItem7 = [[AwesomeMenuItem alloc] initWithImage:storyMenuItemImage highlightedImage:storyMenuItemImagePressed ContentImage:starImage - highlightedContentImage:nil]; + highlightedContentImage:nil + itemSize:CGSizeMake(50.0, 50.0)]; AwesomeMenuItem *starMenuItem8 = [[AwesomeMenuItem alloc] initWithImage:storyMenuItemImage highlightedImage:storyMenuItemImagePressed ContentImage:starImage - highlightedContentImage:nil]; + highlightedContentImage:nil + itemSize:CGSizeMake(50.0, 50.0)]; AwesomeMenuItem *starMenuItem9 = [[AwesomeMenuItem alloc] initWithImage:storyMenuItemImage highlightedImage:storyMenuItemImagePressed ContentImage:starImage - highlightedContentImage:nil]; + highlightedContentImage:nil + itemSize:CGSizeMake(50.0, 50.0)]; NSArray *menuItems = [NSArray arrayWithObjects:starMenuItem1, starMenuItem2, starMenuItem3, starMenuItem4, starMenuItem5, starMenuItem6, starMenuItem7,starMenuItem8,starMenuItem9, nil]; AwesomeMenuItem *startItem = [[AwesomeMenuItem alloc] initWithImage:[UIImage imageNamed:@"bg-addbutton.png"] highlightedImage:[UIImage imageNamed:@"bg-addbutton-highlighted.png"] ContentImage:[UIImage imageNamed:@"icon-plus.png"] - highlightedContentImage:[UIImage imageNamed:@"icon-plus-highlighted.png"]]; + highlightedContentImage:[UIImage imageNamed:@"icon-plus-highlighted.png"]itemSize:CGSizeMake(50.0, 50.0)]; AwesomeMenu *menu = [[AwesomeMenu alloc] initWithFrame:self.window.bounds startItem:startItem menuItems:menuItems]; menu.delegate = self; @@ -116,7 +126,9 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:( */ - [self.window addSubview:menu]; + UIViewController *rootVC = [[UIViewController alloc] init]; + [rootVC.view addSubview:menu]; + self.window.rootViewController = rootVC; [self.window makeKeyAndVisible]; return YES; } diff --git a/AwesomeMenu/AwesomeMenu/AwesomeMenu.m b/AwesomeMenu/AwesomeMenu/AwesomeMenu.m index 07a4a4d..4284029 100644 --- a/AwesomeMenu/AwesomeMenu/AwesomeMenu.m +++ b/AwesomeMenu/AwesomeMenu/AwesomeMenu.m @@ -12,8 +12,6 @@ static CGFloat const kAwesomeMenuDefaultNearRadius = 110.0f; static CGFloat const kAwesomeMenuDefaultEndRadius = 120.0f; static CGFloat const kAwesomeMenuDefaultFarRadius = 140.0f; -static CGFloat const kAwesomeMenuDefaultStartPointX = 160.0; -static CGFloat const kAwesomeMenuDefaultStartPointY = 240.0; static CGFloat const kAwesomeMenuDefaultTimeOffset = 0.036f; static CGFloat const kAwesomeMenuDefaultRotateAngle = 0.0; static CGFloat const kAwesomeMenuDefaultMenuWholeAngle = M_PI * 2; @@ -60,7 +58,7 @@ - (id)initWithFrame:(CGRect)frame startItem:(AwesomeMenuItem*)startItem menuItem self.timeOffset = kAwesomeMenuDefaultTimeOffset; self.rotateAngle = kAwesomeMenuDefaultRotateAngle; self.menuWholeAngle = kAwesomeMenuDefaultMenuWholeAngle; - self.startPoint = CGPointMake(kAwesomeMenuDefaultStartPointX, kAwesomeMenuDefaultStartPointY); + self.startPoint = self.center; self.expandRotation = kAwesomeMenuDefaultExpandRotation; self.closeRotation = kAwesomeMenuDefaultCloseRotation; self.animationDuration = kAwesomeMenuDefaultAnimationDuration; @@ -131,6 +129,11 @@ - (UIImage*)highlightedContentImage { - (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event { + //detect touch only inside own frame bounds + if (!CGRectContainsPoint(self.bounds, point)) + { + return NO; + } // if the menu is animating, prevent touches if (_isAnimating) { diff --git a/AwesomeMenu/AwesomeMenu/AwesomeMenuItem.h b/AwesomeMenu/AwesomeMenu/AwesomeMenuItem.h index c921f1d..8c15131 100644 --- a/AwesomeMenu/AwesomeMenu/AwesomeMenuItem.h +++ b/AwesomeMenu/AwesomeMenu/AwesomeMenuItem.h @@ -30,10 +30,11 @@ @property (nonatomic, weak) id delegate; -- (id)initWithImage:(UIImage *)img +- (id)initWithImage:(UIImage *)img highlightedImage:(UIImage *)himg ContentImage:(UIImage *)cimg -highlightedContentImage:(UIImage *)hcimg; +highlightedContentImage:(UIImage *)hcimg + itemSize:(CGSize)itemSize; @end diff --git a/AwesomeMenu/AwesomeMenu/AwesomeMenuItem.m b/AwesomeMenu/AwesomeMenu/AwesomeMenuItem.m index 46f28c3..3ba1d9c 100644 --- a/AwesomeMenu/AwesomeMenu/AwesomeMenuItem.m +++ b/AwesomeMenu/AwesomeMenu/AwesomeMenuItem.m @@ -9,6 +9,9 @@ #import "AwesomeMenuItem.h" static inline CGRect ScaleRect(CGRect rect, float n) {return CGRectMake((rect.size.width - rect.size.width * n)/ 2, (rect.size.height - rect.size.height * n) / 2, rect.size.width * n, rect.size.height * n);} @implementation AwesomeMenuItem +{ + CGSize _itemSize; +} @synthesize contentImageView = _contentImageView; @@ -19,14 +22,16 @@ @implementation AwesomeMenuItem @synthesize delegate = _delegate; #pragma mark - initialization & cleaning up -- (id)initWithImage:(UIImage *)img +- (id)initWithImage:(UIImage *)img highlightedImage:(UIImage *)himg ContentImage:(UIImage *)cimg -highlightedContentImage:(UIImage *)hcimg; +highlightedContentImage:(UIImage *)hcimg + itemSize:(CGSize)itemSize { - if (self = [super init]) + if (self = [super init]) { self.image = img; + _itemSize = itemSize; self.highlightedImage = himg; self.userInteractionEnabled = YES; _contentImageView = [[UIImageView alloc] initWithImage:cimg]; @@ -41,7 +46,7 @@ - (void)layoutSubviews { [super layoutSubviews]; - self.bounds = CGRectMake(0, 0, self.image.size.width, self.image.size.height); + self.bounds = CGRectMake(0, 0, _itemSize.width, _itemSize.height); float width = _contentImageView.image.size.width; float height = _contentImageView.image.size.height;