Xcode 4.2 iOS程序如何给按钮等添加点击后的代码

Xcode 4.2 iOS程序如何给按钮等添加点击后的代码,第1张

不知道你有多新手,添加按钮点击的方法可以如下

-(IBAction)clickButton:(UIButton *)sender

{

}

我宁可不要你的分,也想提醒你一下。你不应痛恨苹果的证书收费,中国这种只愿意用免费的消费习惯也是他们所痛恨的吧。收费提高门槛对于开发者也有好处。

老版本的xcode有打包ipa的方法,但现在4.2+版本的貌似没有见到。

如果你是初学,暂时可以不考虑进行真机调试。如果就是想生成一个ipa装进你的越狱机得瑟下,考虑将你的代码给有开发者ID的朋友帮你生成下。

导航栏按钮的控件叫BarButtonItem。

关于其设置:

第一种:

UIImage *searchimage=[UIImage imageNamed:@"search.png"]

UIBarButtonItem *barbtn=[[UIBarButtonItem alloc] initWithImage:nil style:UIBarButtonItemStyleDone target:self action:@selector(searchprogram)]

barbtn.image=searchimage

self.navigationItem.rightBarButtonItem=barbtn

这种设置出来的外观不好控制

第二种:

UIButton*rightButton = [[UIButtonalloc]initWithFrame:CGRectMake(0,0,30,30)]

[rightButtonsetImage:[UIImageimageNamed:@"search.png"]forState:UIControlStateNormal]

[rightButtonaddTarget:selfaction:@selector(searchprogram)forControlEvents:UIControlEventTouchUpInside]

UIBarButtonItem*rightItem = [[UIBarButtonItemalloc]initWithCustomView:rightButton]

[rightButton release]

self.navigationItem.rightBarButtonItem= rightItem

[rightItem release]

这种图片将填满button,大小可控

第三种:

UIBarButtonItem *anotherButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemBookmarks target:self action:@selector(methodtocall:) ]

如何让navigationItem.rightBarButtonItem隐藏消失?

self.navigationItem.rightBarButtonItem=nil;

即可实现

参考资料:http://blog.csdn.net/zhuzhihai1988/article/details/7701998

想在键盘上添加一个按钮,实时根据键盘不同高度变换按钮位置,再不做输入的时候点击按钮能够隐藏键盘,这种方式在很多软件上都有体现,然后在网上查阅了关于检测键盘高度一些相关知识,以下是一个Demo,代码有很多需要优化地方,仅供需要者参考 先看效果:首先是我们在ViewDidLoada()中注册了两个通知,[NSNotificationCenterdefaultCenter],检测键盘动态,一个是键盘将要d出的时候,另一个是键盘将要退出时候键盘的信息 - (void)viewDidLoad { NSLog(@"%@",NSStringFromSelector(_cmd)) [super viewDidLoad] [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleKeyboardDidShow:) name:UIKeyboardWillShowNotification object:nil] [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleKeyboardWillHide:) name:UIKeyboardWillHideNotification object:nil] } 检测键盘消息一个六种,根据字面意思差不多都能说明函数作用 UIKeyboardWillShowNotification 通知将要发布时候显示键盘 UIKeyboardDidShowNotification  通知发布后立即显示键盘 UIKeyboardWillHideNotification 通知发布前撤销键盘 UIKeyboardDidHideNotification 通知发布后撤销键盘 UIKeyboardWillChangeFrameNotification 通知发布前迅速变化的框架的键盘。 UIKeyboardDidChangeFrameNotification 通知发布后立即改变在键盘的框架。 NSLog(@"%@",NSStringFromSelector(_cmd))是我特意加上去的,它能在控制台显示打印出当前程序所调用的函数,我在下面每个函数都加了这一句,当我进行不同 *** 作的时候,打印出被调用函数名,在调试程序时候比较适用吧注册消息通知后,实现通知所响应的方法 - (void)handleKeyboardDidShow:(NSNotification *)notification { NSLog(@"%@",NSStringFromSelector(_cmd)) NSDictionary *info = [notification userInfo] CGRect keyboardFrame [[info objectForKey:UIKeyboardFrameEndUserInfoKey] getValue:&keyboardFrame] CGSize kbSize = [[info objectForKey:UIKeyboardFrameEndUserInfoKey]CGRectValue].size CGFloat distanceToMove = kbSize.height NSLog(@"---->动态键盘高度:%f",distanceToMove) if (exitButton == nil) { exitButton = [UIButton buttonWithType:UIButtonTypeRoundedRect] CGRect exitBtFrame = CGRectMake(self.view.frame.size.width-40, self.view.frame.size.height - distanceToMove, 40.0f, 30.0f) exitButton.frame = exitBtFrame [exitButton setImage:[UIImage imageNamed:@"DoneDown.png"] forState:UIControlStateNormal] [self.view addSubview:exitButton] } exitButton.hidden=NO [self adjustPanelsWithKeyBordHeight:distanceToMove] [exitButton addTarget:self action:@selector(CancelBackKeyboard:) forControlEvents:UIControlEventTouchDown] } 在这个函数方法中值得探讨的是关于键盘所包含信息,因为每一次键盘d出的时候也是动画形式d出,他的坐标位置大小包含在userInfo的字典中,现在我用 NSLog(@"-->info:%@",info)打印出info对象,这些信息都可以在不同存储类型,取值的时候注意取值方式,此处只是提一提,希望以后有时间在做探讨,在这一段代码上,后面注释了5行,因为打算当键盘推出的时候,按钮从视图上移除,或者释放按钮,但是都导致了应用程序崩溃,后来就没有释放和移除 *** 作了 - (void)handleKeyboardWillHide:(NSNotification *)notification { NSLog(@"%@",NSStringFromSelector(_cmd)) if (exitButton.hidden==NO) { exitButton.hidden = YES } // if (exitButton.superview) // { // [exitButton removeFromSuperview] // [exitButton release] // } } -(void)adjustPanelsWithKeyBordHeight:(float) height { NSLog(@"%@",NSStringFromSelector(_cmd)) if (exitButton) { CGRect exitBtFrame = CGRectMake(self.view.frame.size.width - 40, self.view.frame.size.height - height-30, 40.0f, 30.0f) exitButton.frame = exitBtFrame [self.view addSubview:exitButton] } // UIWindow* tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1] // if (exitButton.superview == nil) // { // [tempWindow addSubview:exitButton] // // 注意这里直接加到window上 // } } -(void)CancelBackKeyboard:(id)sender { NSLog(@"%@",NSStringFromSelector(_cmd)) [textField resignFirstResponder] } - (void)viewDidUnload { [self setTextField:nil] exitButton=nil [super viewDidUnload] // Release any retained subviews of the main view. } - (void)dealloc { [textField release] [exitButton release] [[NSNotificationCenter defaultCenter] removeObserver:self]//移除所注册的通知 [super dealloc] }


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11745478.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存