iOS弹框
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中的代码:
- #import "ViewController.h"
- #import "KxMenu.h"
- @interface ViewController ()
- @end
- @implementation ViewController
- {
- UIButton *_btn1;
- }
- - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
- {
- self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
- if (self) {
- // Custom initialization
- }
- return self;
- }
- -(void)loadView
- {
- CGRect frame = [[UIScreen mainScreen] applicationFrame];
- self.view = [[UIView alloc] initWithFrame:frame];
- self.view.backgroundColor = [UIColor whiteColor];
- self.view.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;
- _btn1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
- _btn1.frame = CGRectMake(5, 5, 100, 50);
- [_btn1 setTitle:@"KxMenu Test" forState:UIControlStateNormal];
- [_btn1 addTarget:self action:@selector(showMenu:) forControlEvents:UIControlEventTouchUpInside];
- [self.view addSubview:_btn1];
- }
- - (void)viewDidLoad
- {
- [super viewDidLoad];
- // Do any additional setup after loading the view.
- }
- - (void)didReceiveMemoryWarning
- {
- [super didReceiveMemoryWarning];
- // Dispose of any resources that can be recreated.
- }
- - (void)showMenu:(UIButton *)sender
- {
- NSArray *menuItems =
- @[
- [KxMenuItem menuItem:@"ACTION MENU Test"
- image:nil
- target:nil
- action:NULL],
- [KxMenuItem menuItem:@"Share this"
- image:[UIImage imageNamed:@"action_icon"]
- target:self
- action:@selector(pushMenuItem:)],
- [KxMenuItem menuItem:@"Check menu"
- image:[UIImage imageNamed:@"check_icon"]
- target:self
- action:@selector(pushMenuItem:)],
- [KxMenuItem menuItem:@"Reload page"
- image:[UIImage imageNamed:@"reload"]
- target:self
- action:@selector(pushMenuItem:)],
- [KxMenuItem menuItem:@"Search"
- image:[UIImage imageNamed:@"search_icon"]
- target:self
- action:@selector(pushMenuItem:)],
- [KxMenuItem menuItem:@"Go home"
- image:[UIImage imageNamed:@"home_icon"]
- target:self
- action:@selector(pushMenuItem:)],
- ];
- KxMenuItem *first = menuItems[0];
- first.foreColor = [UIColor colorWithRed:47/255.0f green:112/255.0f blue:225/255.0f alpha:1.0];
- first.alignment = NSTextAlignmentCenter;
- [KxMenu showMenuInView:self.view
- fromRect:sender.frame
- menuItems:menuItems];
- }
- - (void) pushMenuItem:(id)sender
- {
- NSLog(@"%@", sender);
- }
- @end
然后,我们要在ETAppDelegate.h中添加如下的代码:
- #import <UIKit/UIKit.h>
- @class ViewController;//添加ViewController类
- @interface ETAppDelegate : UIResponder <UIApplicationDelegate>
- @property (strong, nonatomic) UIWindow *window;
- @property (strong, nonatomic) ViewController *viewController;//ViewController
- @end
接下来我们就要在ETAppDelegate.m中加载我们自己的ViewController,导入ViewController.h
- #import "ViewController.h"
然后修改application方法,如下:
- - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
- {
- self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
- // Override point for customization after application launch.
- self.viewController = [[ViewController alloc] init];
- self.window.rootViewController = self.viewController;
- [self.window makeKeyAndVisible];
- return YES;
- }
OK,基本上初步试用的一个demo就完成了,下面是运行效果:
iOS弹框的更多相关文章
- Ios 弹框 MJPopup,KxMenu
IOS 弹框 如果直接弹出一个自定义的视图 可以选用第三方: MJPopup 弹出: if(!bandview) { bandview=[[[NSBundle mainBundle]loadNibNa ...
- IOS 弹框AlterView的使用(IOS8.0以前使用)UIAlertController(IOS9.0使用)
#pragma mark - 代理方法 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath ...
- ios中的三种弹框《转》
目前为止,已经知道3种IOS弹框: 1.系统弹框-底部弹框 UIActionSheet (1)用法:处理用户非常危险的操作,比如注销系统等 (2)举例: UIActionSheet *sheet = ...
- ios中的三种弹框
目前为止,已经知道3种IOS弹框: 1.系统弹框-底部弹框 UIActionSheet (1)用法:处理用户非常危险的操作,比如注销系统等 (2)举例: UIActionSheet *sheet = ...
- ios UIWebView自定义Alert风格的弹框
之前开发过一个App,因为公司之前写好了网页版的内容和安卓版本的App,我进去后老板要求我ios直接用网页的内容,而不需要自己再搭建框架.我一听,偷笑了,这不就是一个UIWebView吗?简单! 但是 ...
- iOS 可高度自定义的底部弹框
技术: iOS Objective-C 概述 一个可以让开发者通过编写 tableView 的内容随心所欲的定制自己想要的底部弹框 详细 代码下载:http://www.demodashi.com ...
- 移动端ios升级到11及以上时,手机弹框输入光标出现错位问题
引起原因:弹框的定位采取position:fixed,而ios(safari)对定位属性position:fixed的解析不一致导致. 解决方案: 方案一 一开始上网找解决方案,找到如下处理方式.但存 ...
- 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 ...
- iOS:定制自适应大小的透明吐司弹框
一.简单介绍 创建一个吐司消息的黑色透明弹框,可以根据消息长短自适应大小. 可以手动创建手动显示手动关闭,也可以手动创建自动显示自动关闭. 简单好用. 二.代码使用 .h文件 // // LiveHU ...
随机推荐
- 例题:超市买东西的程序。输入商品信息,计算价格,价格满多少元打折。这道题用到结构体,集合,for循环,if else语句
知识要点: 集合和数组的区别:数组是连续的,同一类型的一块区域,而集合可以是不连续的,多种数据类型的. 集合属性:.count 方法:.Add() 将对象添加到ArrayList中实际包含的元素数 ...
- echarts饼图--数据交互
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- License Manager 10.3启动失败解决方法
参考:http://jingyan.baidu.com/article/c275f6bac8763ae33d756788.html 安装ARCGIS10.3过程中无法启动license. 解决办法: ...
- 周爱民-javascript
从纯化的语言中了解到语言的本质:并以混杂的语言来创造我们的世界,. 程序=算法+结构,动静之间,不变的是本质 了解语言的本质,而不是试图学会一门语言. 本书从语言特性出发,把动态静态.函数 ...
- KVC与KVO的进阶使用
本篇主要介绍键-值编码KVC,键值观察KVO的进阶使用的一些技巧主要是一下两个方面: KVC的集合操作符 KVO的手动实现方式 KVC集合操作符 关于集合操作符在苹果官方文档搜索Collection ...
- 小例子(二)、winform窗体间的关系
写一个关于winform窗体间的关系 1.登陆,思路:登陆后隐藏登陆窗体,关闭Form2时结束整个应用程序. //登陆窗体 private void button2_Click(object send ...
- hdu5882 Balanced Game
题目链接:hdu5882 Balanced Game 题解:每种手势的攻防数一样,不难想到n为奇数时游戏平衡. #include<cstdio> #include<cstring&g ...
- Objective-C:Foundation框架-结构体
在Foundation中定义了很多常用结构体类型来简化我们的日常开发,这些结构体完全采用Objective-C定义,和我们自己定义的结构体没有任何区别,之所以由框架为我们提供完全是为了简化我们的开发. ...
- easyui中的combobox小知识点~~
一直使用的easyui中,一些不为人知的小知识点,与君共勉: 1.combobox设置高度:使用panelHeight属性: 2.combobox本身自带“自动补全”功能,但是在浏览器中是有限制的,在 ...
- Windows Store App 应用程序存储空间
与上面介绍的三种不同应用程序数据存储类型对应,应用程序有三种数据存储空间,分别为本地应用程序数据存储空间.漫游应用程序数据存储空间和临时应用程序数据存储空间.通过使用ApplicationData类的 ...