IOS 弹框 如果直接弹出一个自定义的视图 可以选用第三方:

MJPopup

弹出:

if(!bandview)

{

bandview=[[[NSBundle mainBundle]loadNibNamed:@"bandView" owner:selfoptions:nil] firstObject];

bandview.bdelagate=self;

[bandview setFrame:CGRectMake(0, 0, 320, 160)];

}

int offset=ISIPhone5?100:50;

[self presentPopupView:bandview animationType:MJPopupViewAnimationFadeoffset:offset];

收起

[self dismissPopupViewControllerWithanimationType:MJPopupViewAnimationFade];

一般的菜单弹出可用

KxMenu

NSArray *menuItems =

@[

[KxMenuItem menuItem:@"明细统计方式"

image:nil

target:nil

action:NULL],

[KxMenuItem menuItem:@"现金"

image:[UIImageimageNamed:@"action_icon"]

target:self

action:@selector(pushMenuItem:)],

[KxMenuItem menuItem:@"余额"

image:[UIImageimageNamed:@"check_icon"]

target:self

action:@selector(pushMenuItem:)],

[KxMenuItem menuItem:@"POS"

image:[UIImageimageNamed:@"reload"]

target:self

action:@selector(pushMenuItem:)]

];

KxMenuItem *first = menuItems[0];

first.foreColor = [UIColorcolorWithRed:47/255.0f green:112/255.0fblue:225/255.0f alpha:1.0];

first.alignment = NSTextAlignmentCenter;

CGRect rect=button.frame;

CGFloat height=0.0;

if(IOS7>=7.0)

{

height=64;

}

else

{

height=0.0;

}

[KxMenu showMenuInView:self.view

fromRect:CGRectMake(rect.origin.x, rect.origin.y, rect.size.width, height)

menuItems:menuItems];

点击事件实现:

- (void) pushMenuItem:(KxMenuItem*)sender

--------------------------------

今天在看开源中国时看到别人写的一个demo很帅啊,是一个垂直方向展示的弹出菜单,链接地址为:IOS弹出式菜单KxMenu 同时文中也附上了github的地址,在此热泪感谢原作者,我们来试用一下。

因为学习了也有一段日子了,所以我们不能只做一个拖控件的,所以今天的这个demo,我们用纯代码方式来实现一下。

首先,创建一个空的项目。

然后我们添加一个Object-C类,不添加xib文件。

之后我们把KxMenu类拷贝到我们的项目里,并且import进来。

再然后在我们自己的Obj-C类中添加一个UIButton,同时要把KxMenu初始化,我们来具体看下ViewController.m中的代码:

  1. #import "ViewController.h"
  2. #import "KxMenu.h"
  3. @interface ViewController ()
  4. @end
  5. @implementation ViewController
  6. {
  7. UIButton *_btn1;
  8. }
  9. - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
  10. {
  11. self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
  12. if (self) {
  13. // Custom initialization
  14. }
  15. return self;
  16. }
  17. -(void)loadView
  18. {
  19. CGRect frame = [[UIScreen mainScreen] applicationFrame];
  20. self.view = [[UIView alloc] initWithFrame:frame];
  21. self.view.backgroundColor = [UIColor whiteColor];
  22. self.view.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;
  23. _btn1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
  24. _btn1.frame = CGRectMake(5, 5, 100, 50);
  25. [_btn1 setTitle:@"KxMenu Test" forState:UIControlStateNormal];
  26. [_btn1 addTarget:self action:@selector(showMenu:) forControlEvents:UIControlEventTouchUpInside];
  27. [self.view addSubview:_btn1];
  28. }
  29. - (void)viewDidLoad
  30. {
  31. [super viewDidLoad];
  32. // Do any additional setup after loading the view.
  33. }
  34. - (void)didReceiveMemoryWarning
  35. {
  36. [super didReceiveMemoryWarning];
  37. // Dispose of any resources that can be recreated.
  38. }
  39. - (void)showMenu:(UIButton *)sender
  40. {
  41. NSArray *menuItems =
  42. @[
  43. [KxMenuItem menuItem:@"ACTION MENU Test"
  44. image:nil
  45. target:nil
  46. action:NULL],
  47. [KxMenuItem menuItem:@"Share this"
  48. image:[UIImage imageNamed:@"action_icon"]
  49. target:self
  50. action:@selector(pushMenuItem:)],
  51. [KxMenuItem menuItem:@"Check menu"
  52. image:[UIImage imageNamed:@"check_icon"]
  53. target:self
  54. action:@selector(pushMenuItem:)],
  55. [KxMenuItem menuItem:@"Reload page"
  56. image:[UIImage imageNamed:@"reload"]
  57. target:self
  58. action:@selector(pushMenuItem:)],
  59. [KxMenuItem menuItem:@"Search"
  60. image:[UIImage imageNamed:@"search_icon"]
  61. target:self
  62. action:@selector(pushMenuItem:)],
  63. [KxMenuItem menuItem:@"Go home"
  64. image:[UIImage imageNamed:@"home_icon"]
  65. target:self
  66. action:@selector(pushMenuItem:)],
  67. ];
  68. KxMenuItem *first = menuItems[0];
  69. first.foreColor = [UIColor colorWithRed:47/255.0f green:112/255.0f blue:225/255.0f alpha:1.0];
  70. first.alignment = NSTextAlignmentCenter;
  71. [KxMenu showMenuInView:self.view
  72. fromRect:sender.frame
  73. menuItems:menuItems];
  74. }
  75. - (void) pushMenuItem:(id)sender
  76. {
  77. NSLog(@"%@", sender);
  78. }
  79. @end

然后,我们要在ETAppDelegate.h中添加如下的代码:

  1. #import <UIKit/UIKit.h>
  2. @class ViewController;//添加ViewController类
  3. @interface ETAppDelegate : UIResponder <UIApplicationDelegate>
  4. @property (strong, nonatomic) UIWindow *window;
  5. @property (strong, nonatomic) ViewController *viewController;//ViewController
  6. @end

接下来我们就要在ETAppDelegate.m中加载我们自己的ViewController,导入ViewController.h

  1. #import "ViewController.h"

然后修改application方法,如下:

  1. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
  2. {
  3. self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
  4. // Override point for customization after application launch.
  5. self.viewController = [[ViewController alloc] init];
  6. self.window.rootViewController = self.viewController;
  7. [self.window makeKeyAndVisible];
  8. return YES;
  9. }

OK,基本上初步试用的一个demo就完成了,下面是运行效果:

iOS弹框的更多相关文章

  1. Ios 弹框 MJPopup,KxMenu

    IOS 弹框 如果直接弹出一个自定义的视图 可以选用第三方: MJPopup 弹出: if(!bandview) { bandview=[[[NSBundle mainBundle]loadNibNa ...

  2. IOS 弹框AlterView的使用(IOS8.0以前使用)UIAlertController(IOS9.0使用)

    #pragma mark - 代理方法 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath ...

  3. ios中的三种弹框《转》

    目前为止,已经知道3种IOS弹框: 1.系统弹框-底部弹框 UIActionSheet  (1)用法:处理用户非常危险的操作,比如注销系统等 (2)举例: UIActionSheet *sheet = ...

  4. ios中的三种弹框

    目前为止,已经知道3种IOS弹框: 1.系统弹框-底部弹框 UIActionSheet  (1)用法:处理用户非常危险的操作,比如注销系统等 (2)举例: UIActionSheet *sheet = ...

  5. ios UIWebView自定义Alert风格的弹框

    之前开发过一个App,因为公司之前写好了网页版的内容和安卓版本的App,我进去后老板要求我ios直接用网页的内容,而不需要自己再搭建框架.我一听,偷笑了,这不就是一个UIWebView吗?简单! 但是 ...

  6. iOS 可高度自定义的底部弹框

    技术: iOS Objective-C   概述 一个可以让开发者通过编写 tableView 的内容随心所欲的定制自己想要的底部弹框 详细 代码下载:http://www.demodashi.com ...

  7. 移动端ios升级到11及以上时,手机弹框输入光标出现错位问题

    引起原因:弹框的定位采取position:fixed,而ios(safari)对定位属性position:fixed的解析不一致导致. 解决方案: 方案一 一开始上网找解决方案,找到如下处理方式.但存 ...

  8. iOS 15 无法弹出授权弹框之解决方案---Your app uses the AppTrackingTransparency framework, but we are unable to locate the App Tracking Transparency permission request when reviewed on iOS 15.0

    2021年9月30日下午:我正愉快的期盼着即将到来的国庆假期,时不时刷新下appstoreconnect的网址,28号就提上去的包,今天还在审核中....由于这个版本刚升级的xcode系统和新出的iO ...

  9. iOS:定制自适应大小的透明吐司弹框

    一.简单介绍 创建一个吐司消息的黑色透明弹框,可以根据消息长短自适应大小. 可以手动创建手动显示手动关闭,也可以手动创建自动显示自动关闭. 简单好用. 二.代码使用 .h文件 // // LiveHU ...

随机推荐

  1. Windows7睡眠后自动唤醒

    笔者的电脑(Windows7 64位旗舰版)睡眠后,隔段时间后会自动唤醒.经两项配置后,解决了该问题. 1 禁用唤醒定时器 控制面板里进入"电源选项""更改计划设置&qu ...

  2. VC++多工程项目

    目录 第1章 VC++6.0    1 1.1 设置依赖关系    1 1.2 编译顺序    2 1.3 自动连接    3 1.4 静态库    3 1.4.1 嵌入    3 1.4.2 替换  ...

  3. SAP MM模块之批次管理

    1.Batch的定义:Batch is a quantity any drug produced during a given cycle of manufacture. The essence of ...

  4. Qt之QPauseAnimation

    简述 QPauseAnimation类为QSequentialAnimationGroup提供了一个暂停. 如果你想为QSequentialAnimationGroup动画之间添加延迟,可以插入一个Q ...

  5. 移动前端开发的viewport总结整理

    1.通俗讲移动设备上的viewport就是设备的屏幕上能用来显示我们的网页的那块区域,但不是浏览器可视区域.一般来讲,移动设备上的viewport都要大于浏览器的可视区域.移动设备上的浏览器会把默认的 ...

  6. SAP资产变动明细

    *&---------------------------------------------------------------------* *& Report ZFIR027 * ...

  7. OUT函数及其熟练使用,split的用法

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  8. 六个前端开发工程师必备的Web设计模式/模块资源(转)

    [导读] Yahoo的设计模式库Yahoo的设计模式库包含了很多可以帮助开发设计人员解决遇到的问题的资源,包括开发中常常需要处理的导航,互动效果及其布局网格等大家常用的组件和模块响应式设计模式库这个响 ...

  9. "QQ尾巴病毒"核心技术的实现原理分析

    声明:本文旨在探讨技术,请读者不要使用文章中的方法进行任何破坏. 2003这一年里,QQ尾巴病毒可以算是风光了一阵子.它利用IE的邮件头漏洞在QQ上疯狂传播.中毒者在给别人发信息时,病毒会自动在信息文 ...

  10. CentOS linux 下eclipse+cdt编译报undefined reffrece to *