UIAlertView+UIActivityIndicatorView
来源:互联网 发布:魔仙弓琴(淘宝) 编辑:程序博客网 时间:2024/06/05 17:12
1. 最简单的用法
UIAlertView*alert = [[UIAlertView alloc]initWithTitle:@"提示"
message:@"这是一个简单的警告框!"
delegate:nil
cancelButtonTitle:@"确定"
otherButtonTitles:nil];
[alert show];
[alert release];
2. 为UIAlertView添加多个按钮
UIAlertView*alert = [[UIAlertView alloc]initWithTitle:@"提示"
message:@"请选择一个按钮:"
delegate:nil
cancelButtonTitle:@"取消"
otherButtonTitles:@"按钮一", @"按钮二", @"按钮三",nil];
[alert show];
[alert release];
3. 如何判断用户点击的按钮
UIAlertView有一个委托UIAlertViewDelegate ,继承该委托来实现点击事件
头文件:
@interface MyAlertViewViewController : UIViewController<UIAlertViewDelegate> {
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex;
-(IBAction) buttonPressed;
@end
源文件:
-(IBAction) buttonPressed
{
UIAlertView*alert = [[UIAlertView alloc]initWithTitle:@"提示"
message:@"请选择一个按钮:"
delegate:self
cancelButtonTitle:@"取消"
otherButtonTitles:@"按钮一", @"按钮二", @"按钮三",nil];
[alert show];
[alert release];
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
NSString* msg = [[NSString alloc] initWithFormat:@"您按下的第%d个按钮!",buttonIndex];
UIAlertView* alert = [[UIAlertView alloc]initWithTitle:@"提示"
message:msg
delegate:nil
cancelButtonTitle:@"确定"
otherButtonTitles:nil];
[alert show];
[alert release];
[msg release];
}
点击“取消”,“按钮一”,“按钮二”,“按钮三”的索引buttonIndex分别是0,1,2,3
4. 手动的取消对话框
[alertdismissWithClickedButtonIndex:0 animated:YES];
5:为UIAlertView添加子视图
在为UIAlertView对象太添加子视图的过程中,有点是需要注意的地方,如果删除按钮,也就是取消UIAlerView视图中所有的按钮的时候,可能会导致整个显示结构失衡。按钮占用的空间不会消失,我们也可以理解为这些按钮没有真正的删除,仅仅是他不可见了而已。如果在UIAlertview对象中仅仅用来显示文本,那么,可以在消息的开头添加换行符(@"\n)有助于平衡按钮底部和顶部的空间。
下面的代码用来演示如何为UIAlertview对象添加子视图的方法。
UIAlertView*alert = [[UIAlertView alloc]initWithTitle:@"请等待"
message:nil
delegate:nil
cancelButtonTitle:nil
otherButtonTitles:nil];
[alert show];
UIActivityIndicatorView*activeView = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
activeView.center = CGPointMake(alert.bounds.size.width/2.0f, alert.bounds.size.height-40.0f);
[activeView startAnimating];
[alert addSubview:activeView];
[activeView release];
[alert release];
6. UIAlertView默认情况下所有的text是居中对齐的。 那如果需要将文本向左对齐或者添加其他控件比如输入框时该怎么办呢? 不用担心, iPhone SDK还是很灵活的, 有很多delegate消息供调用程序使用。 所要做的就是在
- (void)willPresentAlertView:(UIAlertView *)alertView中按照自己的需要修改或添加即可, 比如需要将消息文本左对齐,下面的代码即可实现:
-(void) willPresentAlertView:(UIAlertView *)alertView
{
for( UIView * view in alertView.subviews )
{
if( [view isKindOfClass:[UILabel class]] )
{
UILabel* label = (UILabel*) view;
label.textAlignment=UITextAlignmentLeft;
}
}
}
这段代码很简单, 就是在消息框即将弹出时,遍历所有消息框对象,将其文本对齐属性修改为 UITextAlignmentLeft即可。
添加其他部件也如出一辙, 如下代码添加两个UITextField:
-(void) willPresentAlertView:(UIAlertView *)alertView
{
CGRect frame = alertView.frame;
frame.origin.y -= 120;
frame.size.height += 80;
alertView.frame = frame;
for( UIView * viewin alertView.subviews )
{
if( ![viewisKindOfClass:[UILabelclass]] )
{
CGRect btnFrame = view.frame;
btnFrame.origin.y += 70;
view.frame = btnFrame;
}
}
UITextField* accoutName = [[UITextFieldalloc] init];
UITextField* accoutPassword = [[UITextFieldalloc] init];
accoutName.frame = CGRectMake( 10, frame.origin.y + 40,frame.size.width - 20, 30 );
accoutPassword.frame = CGRectMake( 10, frame.origin.y + 80,frame.size.width -20, 30 );
accoutName.placeholder = @"请输入账号";
accoutPassword.placeholder = @"请输入密码";
accoutPassword.secureTextEntry = YES;
[alertView addSubview:accoutPassword];
[alertView addSubview:accoutName];
[accoutName release];
[accoutPassword release];
}
显示将消息框固有的button和label移位, 不然添加的text field会将其遮盖住。 然后添加需要的部件到相应的位置即可。
对于UIActionSheet其实也是一样的, 在
- (void)willPresentActionSheet:(UIActionSheet *)actionSheet
中做同样的处理一样可以得到自己想要的界面。
改变alertView的显示位置
myAlertView.transform = CGAffineTransformTransla
改变alertView大小:
- (void)willPresentAlertView:(UIAlertView *)alertView {
}
UIAlertView类似于C#中的模态对话框 或 Messagebox ,但是,ios中使用起来要麻烦得多。
下面这段代码是一段典型的应用:
UIAlertView *alert =[[UIAlertViewalloc] initWithTitle:@"hello"
message:@"ipad ,i come"
delegate:self
cancelButtonTitle:@"ok"
otherButtonTitles:nil];
[alert show];
[alert release];
但是,如果复杂一点,就麻烦了,如果上面加上几个按钮,如:
UIAlertView *alert =[[UIAlertView alloc] initWithTitle:@"hello"
message:@"ipad ,i come"
delegate:self
cancelButtonTitle:@"ok"
otherButtonTitles:@"cancel",@"Ignore",nil ];
view 中会显示3个按钮,那怎么知道用户选择了哪个按钮呢?
步骤如下:
1、在修改.h文件,添加对alertview的处理,如下:
@interface pad4ViewController : UIViewController
<UIAlertViewDelegate>
{.。。
2、在.m文件中添加对alertview事件的响应,如下:
- (void) alertView:(UIAlertView *)alertview
clickedButtonAtIndex:(NSInteger)buttonIndex{
NSLog(@"%@",alertview.title);
}
以上方法实现了当前.m中所有UIAlertView的事件响应,alertview指明是哪个view,buttonIndex指明是哪介按钮。
UIActivityIndicatorView的两种形式(转)
(2012-04-10 12:20:37)ios
uiactivity
indicatorview
杂谈
分类:IOSUI用法一:只显示不停旋转的进度滚轮指示器。
//显示进度滚轮指示器
-(void)showWaiting
progressInd=[[UIActivityIndicatorViewalloc]initWithActivityIndicato
progressInd.center=CGPointMake(self.view.center.x,240);
[self.navigationController.viewaddSubview:progressInd];
[progressIndstartAnimating];
}
//消除滚动轮指示器
-(void)hideWaiting
{
[progressIndstopAnimating];
}
用法二:带有半透明背景的进度轮指示器。
//显示进度滚轮指示器
-(void)showWaiting:(UIView*)parent {
frame = CGRectMake((x - 70)/2,(y - height) /2 + height, 80, 20);
UILabel *waitingLable = [[UILabelalloc]initWithFrame:frame];
waitingLable.text=@"Loading...";
waitingLable.textColor= [UIColorwhiteColor];
waitingLable.font= [UIFontsystemFontOfSize:15];
waitingLable.backgroundColor= [UIColor clearColor];
[theView addSubview:waitingLable];
[waitingLable release];
}
//消除滚动轮指示器
-(void)hideWaiting
{
}
- UIAlertView+UIActivityIndicatorView
- UIAlertView+UIActivityIndicatorView
- 把UIActivityindicatorView 添加到 UIAlertView里面
- Add an UIProgressView or UIActivityIndicatorView to your UIAlertView
- Add an UIProgressView or UIActivityIndicatorView to your UIAlertView
- IOS7中UIAlertView上添加UIActivityIndicatorView提示 简单方法
- iOS UIAlertView中UIActivityindicatorView风火轮提示加载等待
- UISwitch、UISlider、UISegmentedControl、UIActivityIndicatorView、UIStepper、UIProgress、UIAlertView--(图)
- UIActionSheet,UIAlertView,UISlider,UIProgressView,UISwitch,UISegmentControl,UIActivityIndicatorView基
- UIActivityIndicatorView
- UIActivityIndicatorView
- UIActivityIndicatorView
- UIActivityIndicatorView
- UIActivityIndicatorView
- UIActivityIndicatorView
- UIActivityIndicatorView
- UIActivityIndicatorView
- UIActivityIndicatorView
- printf函数?见到这样的文章就关了它继续GOOGLE吧
- 一个管理者的职场感悟
- TCP/IP的三次握手连接和四次握手关闭【问题:为什么建立连接协议是三次握手,而关闭连接却是四次握手?】
- Type Cast
- GDAL学习网站
- UIAlertView+UIActivityIndicatorView
- 人脸识别解锁“SDK_INVALID_MODELS_PATH”问题
- hdoj 1698 Just a hook!
- poj 1573 Robot Motion
- Linux网络socket编程入门
- 权限管理中使用Hibernate Annotation的多对多关联
- 做java小游戏有感
- android串口通信
- 移动一个网站集所使用的内容数据库