Monotouch中UIActivityIndicatorView旋转进度轮和警告框的联合使用

本文介绍如何使用Monotouch在登录操作中实现同步显示警告框和进度轮,通过创建新线程并利用线程判断来确保用户体验流畅。当登录失败时能够及时给出反馈。

不同于Objective C,在Monotouch中,当建立Alertview个体,并调用show函数显示的时候存在延时,取决于你接下来的代码。所以为了保证同步进行,可以建立一个新的Thread。让新的线程来执行警告框和进度轮的显示,而主线程继续执行,当需要停止的时候只需要调用警告框的DismissWithClickedButtonIndex()函数。

这是一个按钮触发事件,当用户点击按钮,首先先建立一个线程,线程执行的操作是函数ThreadLogin(), 即产生一个警告框以及一个进度轮,关于这两个控件的定义的位置我是在类中直接定义的。

建立好线程--启动线程--然后是我自己写的一个类,不是什么复杂的东西,就是通过HttpResquest来验证下用户的密码是否正确。

当用户密码错误,即httpServie.Authenticate()的返回值为false时,先判断线程是否还在运行状态,如果是,那么关闭。如果已经关闭,那么将警告框和进度轮关闭。并且弹出一个新的警告框提示用户登陆错误。

当用户密码正确,即返回值为true,判断线程是否存在,不存在关闭,如果已经结束,那么将警告框和进度轮关闭。进行下一步你想进行的操作

UIAlertView baseAlert;
UIActivityIndicatorView ActView ;

partial void actLogin (MonoTouch.Foundation.NSObject sender)
{
	Thread threadlogin = new Thread(ThreadLogin as ThreadStart);
	threadlogin.Start();
	HttpService httpServie= new HttpService(textName.Text,textPassWord.Text);
	if(!httpServie.Authenticate()){
		if(threadlogin!= null  && threadlogin.IsAlive)
		{
			threadlogin.Abort();
			threadlogin.Join();

		}
		baseAlert.DismissWithClickedButtonIndex(0,false);
		UIAlertView alertview =new UIAlertView("","Invalide user name or password",null,"OK",null);
		alertview.Show();
	}
	else{
		if(threadlogin!= null  && threadlogin.IsAlive)
		{
			threadlogin.Abort();
			threadlogin.Join();
		}

		baseAlert.DismissWithClickedButtonIndex(0,false);
		if(this.addItemScreen==null){
			this.addItemScreen=new AddItemScreen();
		}
	NavigationController.PushViewController(this.addItemScreen,true);
	}
}

线程所执行的操作

// New Thread 
[Export("ThreadLogin")]
public void ThreadLogin ()
{
	using (var pool = new NSAutoreleasePool())
	{
		baseAlert = new UIAlertView("connecting...","",null,null,null);
		baseAlert.Show();
		ActView = new UIActivityIndicatorView(UIActivityIndicatorViewStyle.WhiteLarge);
		ActView.Center = new PointF(baseAlert.Bounds.Size.Width/2.0f,baseAlert.Bounds.Size.Height-40.0f);
		ActView.StartAnimating();
		baseAlert.AddSubview(ActView);

	}
}



内容概要:本文档系统性地介绍了2024年最新提出的两种智能优化算法——青蒿素优化算法与霜冰优化算法(RIME)的原理、实现方法及其性能对比分析,并提供了完整的Matlab代码实现。文档不仅聚焦于核心算法的仿真与验证,还整合了大量前沿科研资源,涵盖微电网优化、风电功率预测、无人机三维路径规划、电动汽车调度、图像融合、负荷预测、通信信号处理、电力系统故障恢复等多个高价值应用场景。所有案例均基于Matlab/Simulink平台进行建模与仿真,强调算法在复杂工程系统中的实际应用能力,旨在为科研人员提供一套从理论到代码再到应用的完整复现体系。; 适合人群:具备一定编程基础科研背景的研究生、高校教师及工程技术人员,尤其适合从事智能优化算法研究、新能源系统优化、自动化控制、电力系统调度、无人机导航与路径规划等相关领域的研究人员。; 使用场景及目标:①用于高水平学术论文的复现与创新性研究,提升科研效率与成果产出;②应用于复杂工程系统的建模仿真与智能优化设计,如多能互补系统调度、无人机避障路径规划、微电网能量管理等;③作为智能优化算法的教学与学习资料,深入理解现代元启发式算法的设计思想与实现机制。; 阅读建议:建议读者结合文档中提供的Matlab代码与Simulink仿真模型,按照目录结构循序渐进地学习与实践,优先选择与自身研究方向契合的案例进行代码复现,重点关注算法参数设置、收敛曲线分析与多算法对比实验部分,以全面提升算法应用与科研创新能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值