代码之家  ›  专栏  ›  技术社区  ›  Duck

ipad-基于视图的应用程序上的滑动菜单

  •  0
  • Duck  · 技术社区  · 14 年前

    这个想法是这样的:我有一个板与几个对象。当用户轻触并按住对象半秒钟时,会出现一个弹出窗口,显示对象属性。属性包括:对象颜色、对象文本、对象文本颜色和对象阴影颜色。

    这4个属性中的每一个,当点击时,都会使一个新窗口从右边滑入popover,带来调整。点击“完成”,视图被推到右侧,再次显示第一个视图。。。对所有视图重复此过程。

    提前谢谢

    3 回复  |  直到 14 年前
        1
  •  1
  •   nevan king    14 年前

    你说的是iPhone还是iPad?您的标签仅适用于iPhone。

    在iPad上,有一个特定的UI元素叫做Popover。当您单击邮件中的“回复”图标时,会出现一个带有“回复”和“转发”的菜单。这是一件府绸。在iPhone上,还有另一种UI元素,例如当你想要复制文本时。它显示“选择”、“剪切”等。这叫做呼出。注意,你不能在iPhone上使用popover。

    如果你说的是iPhone上的邮件,你就必须知道如何使用iPhone UINavigationController ,然后使用 -pushViewController:animated:

        2
  •  0
  •   Jesse Naugher    14 年前

    它是UINavigationController的默认动画。因此,如果实现UINavigationController作为UIPopoverController的根视图,然后按下所需的视图控制器,应该会达到所需的效果。

        3
  •  0
  •   Vijay-Apple-Dev.blogspot.com    13 年前

    h

    IBOutlet UIScrollView *scrollView;
    
    @property ( nonatomic , retain )  IBOutlet UIScrollView *scrollView;
    
    -(void)AppleVijayAtFacebookDotCom:(id)sender;
    
    -(void)createMenuWithButtonSize:(CGSize)buttonSize withOffset:(CGFloat)offset noOfButtons:(int)totalNoOfButtons;
    

    @synthesize scrollView;
    
    
    
    -(void)AppleVijayAtFacebookDotCom:(id)sender{
    
    
        NSLog(@"AppleVijayAtFacebookDotCom called");
    
    
        UIButton *button=(UIButton *)sender;
    
    
        if (button.tag == 0) {
    
            NSLog(@"hey have clicked first button, this is my tag : %i \n\n",button.tag);
        }
        else if (button.tag == 1) {
    
            NSLog(@"hey have clicked second button, this is my tag : %i \n\n",button.tag);
    
        }
        // ......like this
    
        NSLog(@"button clicked is : %iBut \n\n",button.tag);
    
    
    
    }       
    
    
    
    -(void)createMenuWithButtonSize:(CGSize)buttonSize withOffset:(CGFloat)offset noOfButtons:(int)totalNoOfButtons{
    
    for (int i = 0; i < totalNoOfButtons; i++) {
    
        UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    
        [button addTarget:self action:@selector(AppleVijayAtFacebookDotCom:) forControlEvents:UIControlEventTouchUpInside];
    
            //[button1 setImage:[UIImage imageNamed:@"Button.png"] forState:UIControlStateNormal];//with image
    
            //OR
    
        [button setTitle:[NSString stringWithFormat:@"%iBut",i] forState:UIControlStateNormal];//with title
    
        button.frame = CGRectMake(i*(offset+buttonSize.width), 8.0, buttonSize.width, buttonSize.height);
    
        button.clipsToBounds = YES;
    
        button.showsTouchWhenHighlighted=YES;
    
        button.layer.cornerRadius = 10;//half of the width
    
        button.layer.borderColor=[UIColor redColor].CGColor;
    
        button.layer.backgroundColor=[UIColor blackColor].CGColor;
    
        button.layer.borderWidth=2.0f;
    
        button.tag=i;
    
        [self.scrollView addSubview:button];
    
    }
    
    self.scrollView.contentSize=CGSizeMake((buttonSize.width + offset) * totalNoOfButtons, buttonSize.height);
    
        //self.navigationItem.titleView=self.scrollView;//if u have navigationcontroller then enable this line
    

    }

    别忘了在interface builder中连接scrollView

    在IB中创建scrollview时,请确保urscrollview height为44,这是导航的默认值巴索看起来不错。

    in viewDidLoad call 
    
    [self createMenuWithButtonSize:CGSizeMake(70.0, 30.0) withOffset:20.0f noOfButtons:30];
    

    输出

    enter image description here