首页 文章 精选 留言 我的

精选列表

搜索[异步方法],共10000篇文章
优秀的个人博客,低调大师

iOS EGORefreshTableHeaderView使用方法

废话不多说,直接上传代码说明 1.把EGORefreshTableHeaderView.h和EGORefreshTableHeaderView.m文件拉入到工程 2.viewcontroller文件添加引用#import"EGORefreshTableHeaderView.h"和协议<</span>EGORefreshTableHeaderDelegate> 3.定义对象 EGORefreshTableHeaderView*refreshView; BOOLreloading; //注意reloading是必须的 4 实现delegate #pragma mark - EGORefreshTableHeaderDelegate Methods //下拉控件刷新触发事件 - (void)egoRefreshTableHeaderDidTriggerRefresh:(EGORefreshTableHeaderView*)view{ [selfreloadTableViewDataSource]; } - (BOOL)egoRefreshTableHeaderDataSourceIsLoading:(EGORefreshTableHeaderView*)view{ returnreloading;// should return if data source model is reloading } - (NSDate*)egoRefreshTableHeaderDataSourceLastUpdated:(EGORefreshTableHeaderView*)view{ return[NSDatedate];// should return date data source was last changed } #pragma mark - UIScrollViewDelegate Methods - (void)scrollViewDidScroll:(UIScrollView*)scrollView{ [refreshViewegoRefreshScrollViewDidScroll:scrollView]; } - (void)scrollViewDidEndDragging:(UIScrollView*)scrollView willDecelerate:(BOOL)decelerate{ [refreshViewegoRefreshScrollViewDidEndDragging:scrollView]; } 注意要实现UIScrollViewDelegate 5 添加load数据的函数和load完数据的函数 #pragma mark Data Source Loading / Reloading Methods //下拉动作触发事件调用的函数。在这里发送数据请求 - (void)reloadTableViewDataSource{ //should be calling your tableviews data source model to reload //put here just for demo NSLog(@"dragging!!!"); timer= [NSTimerscheduledTimerWithTimeInterval:5target:selfselector:@selector(doneLoadingTableViewData)userInfo:nilrepeats:NO]; reloading=YES; } //请求结束函数。在这里要关闭下拉的视图.并更新表视图 - (void)doneLoadingTableViewData{ //model should call this when its done loading NSLog(@"stop loading"); timer=nil; reloading=NO; [refreshViewegoRefreshScrollViewDataSourceDidFinishedLoading:self.tableView]; [listDataaddObject:[[NSStringalloc]initWithFormat:@"%d",[listDatacount]]]; [self.tableViewreloadData]; } 本文转自 卓行天下 51CTO博客,原文链接:http://blog.51cto.com/9951038/1772576,如需转载请自行联系原作者

优秀的个人博客,低调大师

Unity调用Android类方法

1. 添加Unity的classes.jar文件 创建一个Android工程AndroidUnityDemo。 由于Unity的版本不同,直接在Unity安装包文件夹里面搜索classes.jar文件,如果有多个classes.jar文件,一般选择的是mono/Release文件夹下的classes.jar文件。 将classes.jar文件放在app文件下的libs文件夹下。 然后,更新一下。 2. 编写Android类 打开MainActivity.java类,让MainActivity类继承于UnityPlayerActivity类,如果提示类不存在,说明unity的classe.jar文件没有加载进来。 删除setContentView(R.layout.activity_main); MainActivity.java 1packagecom.xxxxxx.androidunitydemo;23importandroid.os.Bundle;4importandroid.util.Log;56importcom.unity3d.player.UnityPlayerActivity;7publicclassMainActivityextendsUnityPlayerActivity{8@Override9protectedvoidonCreate(BundlesavedInstanceState){10super.onCreate(savedInstanceState);11}12publicvoidtest1()13{14Log.v("Android_Unity","noreturnvalueandnoparameter");15}16publicStringtest2()17{18Log.v("Android_Unity","havereturnvalueandnoparameter");19return"HelloUnity";20}21publicvoidtest3(Stringpar)22{23Log.v("Android_Unity","noreturnvalueandhaveparameter");24Log.v("Android_Unity",par);25}26publicStringtest4(Stringpar)27{28Log.v("Android_Unity","havereturnvalueandhaveparameter");29Log.v("Android_Unity",par);30return"HelloUnity";31}32publicstaticvoidtest5()33{34Log.v("Android_Unity","staticfunction");35}36} 3. 打包成arr文件 打开build.gradle文件,将applyplugin:‘com.android.application’修改为applyplugin:‘com.android.library’,将applicationId‘com.XXXXXX.androidunitydemo’删除。 Build.gradle 1applyplugin:'com.android.library'2android{3compileSdkVersion234buildToolsVersion"23.0.3"5defaultConfig{6minSdkVersion157targetSdkVersion238versionCode19versionName"1.0"10}11buildTypes{12release{13minifyEnabledfalse14proguardFilesgetDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'15}16}17}18dependencies{19compilefileTree(dir:'libs',include:['*.jar'])20testCompile'junit:junit:4.12'21compile'com.android.support:appcompat-v7:23.4.0'22} 如果不用在Unity中添加Android的res文件的话,将AndroidManifest文件中使用res的部分删除。修改AndroidManifest.xml文件,加入android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">与<meta-data android:name="unityplayer.UnityActivity" android:value="true" /> AndriodManifest.xml <?xmlversion="1.0"encoding="utf-8"?><manifestxmlns:android="http://schemas.android.com/apk/res/android" package="com.xxxxxx.androidunitydemo" android:versionCode="1" android:versionName="1.0"> <uses-sdkandroid:minSdkVersion="15" android:targetSdkVersion="23"/> <applicationandroid:allowBackup="true" android:label="AndroidUnityDemo" android:supportsRtl="true"> <activityandroid:name="com.xxxxxx.androidunitydemo.MainActivity" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen"> <intent-filter> <actionandroid:name="android.intent.action.MAIN"/> <categoryandroid:name="android.intent.category.LAUNCHER"/> </intent-filter> <meta-dataandroid:name="unityplayer.UnityActivity"android:value="true"/> </activity> </application></manifest> 打包文件,点击Build->BuildApk,点击ShowinExplorer,打开arr文件所在文件夹,点击outputs->arr,就可以看到app-debug.arr压缩包。 4. 创建一个简单场景 创建一个Unity项目名为UnityAndroidDemo。 点击File->Build Setting,点击Android,在点击Switch platform按钮,进行平台转换,点击Player Settings,在Inspector会看到具体内容,点击Other Settings,找到Identification中的Bundle Identifier,将其内容修改成Adnroid的packageName,也就是AndroidManifext.xml文件中package的值。 点击File->Save Scene,保存场景。 5. 将AndroidManifest.xml与arr文件加入到Unity项目中 在Project里创建文件夹Plugins,在文件夹Plugins文件夹里创建文件夹Android,将app-debug.arr文件解压,将其中的classes.jar文件与AndroidManifest.xml文件取出来放入Unity的Android文件夹下。 6. 调用Android类 打开Main Camera,点击Add Component->New Script,创建一个c#文件,点击Create and Add。 打开NewBehaviourScript.cs文件,进行编写。 1usingUnityEngine;2usingSystem.Collections;34publicclassNewBehaviourScript:MonoBehaviour{5//Usethisforinitialization6voidStart(){7}8//Updateiscalledonceperframe9voidUpdate(){10if(Input.GetKey(KeyCode.Escape))11Application.Quit();12}13voidOnGUI()14{15if(GUILayout.Button("NoReturnValueAndNoParameter"))16{17AndroidJavaClassjc=newAndroidJavaClass("com.unity3d.player.UnityPlayer");18AndroidJavaObjectjo=jc.GetStatic<AndroidJavaObject>("currentActivity");19jo.Call("test1");20}21if(GUILayout.Button("HaveReturnValueAndNoParameter"))22{23AndroidJavaClassjc=newAndroidJavaClass("com.unity3d.player.UnityPlayer");24AndroidJavaObjectjo=jc.GetStatic<AndroidJavaObject>("currentActivity");25stringreturnValue=jo.Call<string>("test2");26Debug.Log("HaveReturnValueAndNoParameterReturnValue:"+returnValue);27}28if(GUILayout.Button("NoReturnValueAndHaveParameter"))29{30AndroidJavaClassjc=newAndroidJavaClass("com.unity3d.player.UnityPlayer");31AndroidJavaObjectjo=jc.GetStatic<AndroidJavaObject>("currentActivity");32jo.Call("test3","HelloAndroid");33}34if(GUILayout.Button("HaveReturnValueAndHaveParameter"))35{36AndroidJavaClassjc=newAndroidJavaClass("com.unity3d.player.UnityPlayer");37AndroidJavaObjectjo=jc.GetStatic<AndroidJavaObject>("currentActivity");38stringreturnValue=jo.Call<string>("test4","HelloAndroid");39Debug.Log("HaveReturnValueAndHaveParameterReturnValue:"+returnValue);40}41if(GUILayout.Button("staticFunction"))42{43AndroidJavaClassjc=newAndroidJavaClass("com.unity3d.player.UnityPlayer");44AndroidJavaObjectjo=jc.GetStatic<AndroidJavaObject>("currentActivity");45jo.CallStatic("test5");46}47}48} 7. 运行结果显示 本文转自xmgdc51CTO博客,原文链接:http://blog.51cto.com/12953214/1940451 ,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册