滑动弹出菜单的代码例子
可在应用中实现方便美观的按钮收放效果。如下图所示,点击菜单按钮可向上滑动弹出包含拍照和设置按钮的面板,再次点击则面板收回。
原文:http://www.devdiv.com/iOS_iPhone-%E6%BB%91%E5%8A%A8%E5%BC%B9%E5%87%BA%E8%8F%9C%E5%8D%95%E7%9A%84%E4%BB%A3%E7%A0%81%E4%BE%8B%E5%AD%90-thread-76133-1-1.html
使用Titanium开发的Android应用,通过网络或者Android市场下载后安装,在应用第一次启动的时候,会弹出来一个对话框“Restart Required”(有些机种没有)。
关于这个问题,官方的QA论坛也有很多讨论的地方,但是目前的版本(1.7.2)都还是没有解决。可能是系统的一个Bug。
虽然目前还没有去掉这个对话框的解决方法,但是对话框中表示的标题和信息是可以自定义修改的。为了提高用户体验,不把用户给吓着,还是强烈建议大家修改内容。
修改方法:
在tiapp.xml的ti:app标签下放置以下内容。
<property name="ti.android.bug2373.title">Restart Required</property> <property name="ti.android.bug2373.message">An application restart is required.</property> <property name="ti.android.bug2373.buttonText">Continue</property> <property name="ti.android.bug2373.backgroundColor">black</property>
通过属性名能看出来每个值的具体含义:
・title(对话框的标题)
・message(对话框上显示的信息)
・buttonText(按钮的文字)
・backgroundColor(对话框的背景色)
如果要是想显示汉字,直接把汉字定义在tiapp.xml中的话,在build的时候会提示错误,所以需要将汉字转化为UTF-8的ASCII码(例:\u3051)后定义就没有问题了。
官方Bug list: TIMOB-4941
我试过这一种Ti.Android.currentActivity.finish();并不能解决问题。
我试过这一种Ti.Android.currentActivity.finish();并不能解决问题。
你在Ti.UI.createWindow的时候加“exitOnClose: true”了吗?
我试过这一种Ti.Android.currentActivity.finish();并不能解决问题。
你在Ti.UI.createWindow的时候加“exitOnClose: true”了吗?
加了,但总是会有问题,那如果是iphone呢,Ti.Android一定不能用吧?
目的
学习view制作及切换的几种方式
环境
Mac OS X 10.7.2
Xcode4.2
详解
在storyboard中创建另一个ViewController并使用Segue切换
在storyboard中再增加一个ViewController。在两个ViewController中各增加一个按钮。右击按钮,在弹出菜单中拖放“Modal”圈圈到另一个ViewController上放手即可。
在xib文件中创建另一个ViewController并使用代码手动切换
在工程中添加文件,选择创建“UIViewController subclass”,在向导中勾选“With XIB for user interface”,取名为“SecondViewController”,完成后得到3个文件:"SecondViewController.h"、"SecondViewController.m“、"SecondViewController.xib”。
在xib中添加一个按钮,并为其添加事件处理函数,在函数中增加如下代码以用于退出当前的view回到首页:
- (IBAction)exitCurrentView:(id)sender {
[self.view removeFromSuperview];
}
在首页的ViewController.h中添加此xib对应的变量,如下所示:
@interface ViewController : UIViewController
{
SecondViewController* secondViewController;
}
背后的切换按钮事件函数代码为:
- (IBAction)switchToSecondView:(id)sender {
secondViewController=[[SecondViewController new]
initWithNibName:@"SecondViewController"
bundle:nil];
[self.view addSubview:secondViewController.view];
}
在代码中手动创建View并使用代码手动切换
- (IBAction)switchToThirdView:(id)sender {
//先创建view
thirdView=[[UIView alloc]
initWithFrame:self.view.bounds];
thirdView.backgroundColor=[UIColor greenColor];
//为view增加控件
UIButton* button=[UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame=CGRectMake(100, 100, 100, 100);
[button setTitle:@"回首页"
forState:UIControlStateNormal];
[button addTarget:self
action:@selector(exitThirdView:)
forControlEvents:UIControlEventTouchUpInside];
[thirdView addSubview:button];
//将view显示出来
//加入动画吧
[UIView beginAnimations:@"flipping view"
context:nil];
[UIView setAnimationDuration:1];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft
forView:self.view
cache:NO];
[self.view addSubview:thirdView];
[UIView commitAnimations];
}
- (void)exitThirdView:(id)sender
{
//也加入动画效果
[UIView beginAnimations:@"flipping view"
context:nil];
[UIView setAnimationDuration:1];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight
forView:self.view
cache:NO];
[thirdView removeFromSuperview];
[UIView commitAnimations];
}
解决
方法执行顺序的问题,页面的加载顺序是
2011-11-04 13:48:21.290 jjj[4048:707] viewDidAppear
2011-11-04 13:48:21.291 jjj[4048:707] layoutSubveiws
2011-11-04 13:48:21.293 jjj[4048:707] viewDidLayoutSubviews
2011-11-04 13:48:21.294 jjj[4048:707] showIntoAnimation
动画一定要在View的layoutSubviews处理完了之后再做,否则会出问题,这样动画就只能
放在viewDidLayoutSubviews方法中了