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

时间:2010-09-21 19:06:33

标签: iphone

我有一个基于视图的应用程序,我想实现其中一个滑动菜单(我不知道是否有一个特定的名称来调用它们),如Mail。

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

这四个属性中的每一个,当点击时,都会使一个新窗口从右侧滑入弹出窗口,进行调整。点击完成,视图被推到右侧,再次显示第一个视图...所有视图都重复该过程。

如何将这些“滑动菜单”添加到弹出框中的基于视图的应用程序?

提前致谢

3 个答案:

答案 0 :(得分:1)

您在谈论iPhone或iPad吗?您的标签仅适用于iPhone。

在iPad上,有一个名为Popover的特定UI元素。当您单击Mail中的“回复”图标时,会出现一个带有“回复”和“转发”的菜单。这是一个Popover。在iPhone上,还有另一种UI元素,例如,当您想要复制文本时。它显示“选择”,“剪切”等。这叫做标注。请注意,您无法在iPhone上使用Popovers。

如果您在iPhone上谈论Mail,则必须了解如何使用UINavigationController,然后使用方法-pushViewController:animated:将新页面滑动到屏幕上。< / p>

答案 1 :(得分:0)

是UINavigationController的默认动画。因此,如果您将UINavigationController实现为UIPopoverController的根视图,那么推送所需的视图控制器,它应该是所需的效果。

答案 2 :(得分:0)

·H

IBOutlet UIScrollView *scrollView;

@property ( nonatomic , retain )  IBOutlet UIScrollView *scrollView;

-(void)AppleVijayAtFacebookDotCom:(id)sender;

-(void)createMenuWithButtonSize:(CGSize)buttonSize withOffset:(CGFloat)offset noOfButtons:(int)totalNoOfButtons;

的.m

@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

}

不要忘记在界面构建器中连接scrollView

在IB中创建滚动视图时确保你的scrollView高度为44.这是导航栏的默认值。所以它看起来不错。

in viewDidLoad call 

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

<强>输出

enter image description here