簡體   English   中英

將AwesomeMenu與UITabBarController tabBar一起使用

[英]Using AwesomeMenu with a UITabBarController tabBar

我一直在向AITabBar添加AwesomeMenu按鈕。 我的計划是讓標簽欄上方的圖標弧看起來很酷。 我玩了一點,並能夠顯示圖標。 我稱它為菜單,只是使用了我已經擁有的相同按鈕,在選項卡欄后面添加了一個AwesomeMenu(這樣圖標從后面彈出),然后隱藏了Awesome菜單。 我在選項卡欄中的按鈕上添加了一個動作,以模擬在超贊菜單上的輕擊,並顯示AwesomeMenu,然后完美顯示了按鈕。 問題是,當我嘗試點擊這些按鈕中的任何一個時,什么都沒有發生。 我認為這是一個問題,因為它們位於UITabBar上方,但是我不確定。 我在空白視圖控制器的中間添加了一個普通的AwesomeMenu,其設置與我在選項卡欄上的設置相同(除了在選項卡欄上並被另一個按鈕調用),並且可以正常工作。 當我按下按鈕時,它們起作用。 基於此,我認為按鈕顯示在UITabBar上方或者只是按鈕的工作方式是一個問題。 任何幫助將不勝感激!

這是將按鈕添加到UITabBar(非常標准)的方法:

UIImage *storyMenuItemImage = [UIImage imageNamed:@"Selector_Fill.png"];
    UIImage *scaledImage = [UIImage imageWithCGImage:[storyMenuItemImage CGImage] scale:(storyMenuItemImage.scale * 2.0) orientation:UIImageOrientationUp];

    UIImage *storyMenuItemImagePressed = [UIImage imageNamed:@"Selector_Fill.png"];

    UIImage *starImage = [UIImage imageNamed:@"Selector_Camera_Fill"];
    AwesomeMenuItem *starMenuItem1 = [[AwesomeMenuItem alloc] initWithImage:scaledImage
                                                           highlightedImage:storyMenuItemImagePressed
                                                               ContentImage:[UIImage imageNamed:@"Selector_Camera_Fill"]
                                                    highlightedContentImage:nil];
    AwesomeMenuItem *starMenuItem2 = [[AwesomeMenuItem alloc] initWithImage:scaledImage
                                                           highlightedImage:storyMenuItemImagePressed
                                                               ContentImage:[UIImage imageNamed:@"Selector_Video_Fill"]
                                                    highlightedContentImage:nil];


    AwesomeMenuItem *starMenuItem3 = [[AwesomeMenuItem alloc] initWithImage:scaledImage
                                                           highlightedImage:storyMenuItemImagePressed
                                                               ContentImage:[UIImage imageNamed:@"Selector_Pen"]
                                                    highlightedContentImage:nil];

    AwesomeMenuItem *starMenuItem4 = [[AwesomeMenuItem alloc] initWithImage:scaledImage
                                                           highlightedImage:storyMenuItemImagePressed
                                                               ContentImage:starImage
                                                    highlightedContentImage:nil];

    AwesomeMenuItem *starMenuItem5 = [[AwesomeMenuItem alloc] initWithImage:scaledImage
                                                           highlightedImage:storyMenuItemImagePressed
                                                               ContentImage:[UIImage imageNamed:@"Selector_Music_Fill"]
                                                    highlightedContentImage:nil];
    // the start item, similar to "add" button of Path
    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"]];
    startItem.center = CGPointMake(self.tabBarController.tabBar.center.x , 30);

    //22
    self.menu = [[AwesomeMenu alloc] initWithFrame:CGRectMake(0, 0, 320, 568) startItem:startItem optionMenus:[NSArray arrayWithObjects:starMenuItem1, starMenuItem2, starMenuItem3, starMenuItem4, starMenuItem5,nil]];
    self.menu.startPoint = CGPointMake(160.0, 22.0);
    self.menu.rotateAngle = M_PI / 180 * -60;
    self.menu.menuWholeAngle = M_PI / 180 * 120;
    self.menu.timeOffset = 0.036f;
    self.menu.farRadius = 140.0f;
    self.menu.nearRadius = 110.0f;
    self.menu.endRadius = 120.0f;
    self.menu.delegate = self;
    self.menu.hidden = YES;
    [self.tabBarController.tabBar addSubview:self.menu];
    [self.tabBarController.tabBar sendSubviewToBack:self.menu];

這是我從UITabBar中的按鈕調用它的方式:

[self.menu touchesBegan:nil withEvent:nil];

您必須在Tabbar中添加一個UIButton,該UIButton會觸發以初始化一個包含所有AwesomeMenu內容的空視圖。 您可以使用- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event將觸摸事件從按鈕傳遞到令人敬畏的菜單。 -(void)awesomeMenuDidFinishAnimationClose:(AwesomeMenu *)menu時,請不要忘記關閉ViewController。 您還必須通過父vc的委托傳遞選定的MenuItems。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM