我在Android中使用PhoneGap + jQuery Mobile,我对Phonegap的"onBodyLoad()/ onDeviceReady()"函数和Jquery的"$(document).ready()"感到困惑.
在PhoneGap文档中:
PhoneGap包含两个代码库:本机和JavaScript.在加载本机代码时,会显示自定义加载图像.但是,只有在DOM加载后才会加载JavaScript.这意味着您的Web应用程序可能会在加载之前调用PhoneGap JavaScript函数.
一旦PhoneGap完全加载,PhoneGap deviceready事件就会触发.设备触发后,您可以安全地拨打PhoneGap功能.
通常,一旦HTML文档的DOM加载,您将需要使用document.addEventListener附加事件侦听器.
在jQuery doc中:
虽然JavaScript提供了在呈现页面时执行代码的加载事件,但在完全接收到所有资产(如图像)之前,不会触发此事件.在大多数情况下,只要完全构造DOM层次结构,就可以运行脚本.传递给.ready()的处理程序保证在DOM准备好后执行,因此这通常是附加所有其他事件处理程序并运行其他jQuery代码的最佳位置.使用依赖于CSS样式属性值的脚本时,在引用脚本之前引用外部样式表或嵌入样式元素很重要.
如果代码依赖于加载的资源(例如,如果需要图像的维度),则应将代码放在load事件的处理程序中.
我的实验表明,ready()总是早于onDeviceReady(),如何解释这个?我应该如何使用它们?我应该在onDeviceReady()中放入ready()以使每个调用都安全吗?
先感谢您.
问候,克里斯
我已阅读适用于iOS的Apple Scroll View编程指南,但仍对以下部分感到困惑:
滚动到特定偏移
滚动到特定的左上角位置(contentOffset属性)可以通过两种方式完成.setContentOffset:animated:方法将内容滚动到指定的内容偏移量.如果动画参数为YES,则滚动将以恒定速率从当前位置动画到指定位置.如果动画参数为NO,则立即滚动并且不进行动画.在这两种情况下,委托都会发送一个scrollViewDidScroll:消息.如果禁用动画,或者通过直接设置contentOffset属性设置内容偏移量,则委托会收到单个scrollViewDidScroll:消息.如果启用了动画,则委托会在动画正在进行时收到一系列scrollViewDidScroll:消息.动画完成后,委托会收到scrollViewDidEndScrollingAnimation:消息.
使矩形可见
也可以滚动矩形区域以使其可见.当应用程序需要将当前在可见区域之外的控件显示到可见视图中时,这尤其有用.scrollRectToVisible:animated:方法滚动指定的矩形,使其在滚动视图中可见.如果动画参数为YES,则矩形以恒定的速度滚动到视图中.与setContentOffset:animated:一样,如果禁用动画,则会向委托发送单个scrollViewDidScroll:消息.如果启用了动画,则会在动画进行过程中向委托发送一系列scrollViewDidScroll:消息.在scrollRectToVisible的情况下:animated:滚动视图的跟踪和拖动属性也是NO.
如果为scrollRectToVisible:animated:启用了动画,则委托接收scrollViewDidEndScrollingAnimation:消息,提供滚动视图已到达指定位置并且动画完成的通知.
我认为setContentOffset:animated和scrollRectToVisible之间非常相似:动画,有人可以提供一些关于它们的提示吗?
和scrollRectToVisible:animated:类似于scrollViewDidEndDecelerating:animated:too.
嗨,我正在开发一个iPad应用程序,并且要求在应用程序进入后台时关闭所有弹出窗口(如果有的话).
我在网上做了一些研究,并没有找到一个简单的方法来做到这一点.我想在这里分享一些我的想法,看看是否有更好的方法来做到这一点.
1,在委托中取消 didEnterBakcground中的popovers.似乎不实用,因为我们必须添加所有popovers引用.
2,在当前窗口中递归遍历所有视图,以通过(class = _UIPopoverView)查找弹出视图.这看起来有点hacky和危险.
3,在拥有弹出窗口的每个对象中设置UIApplicationDidEnterBackgroundNotificationgroundNotification并将其关闭.这似乎是合理的,但如果你的应用程序中有数百个弹出窗口,那真的很麻烦.
4,如何添加类别方法说 - (void)dismissWhenAppWillEnterBackground; 并注册通知.
或者有更容易的方法吗?
我正在尝试使用Webview实现AlertDialog.
public OnClickListener imageButtonViewOnClickListener = new OnClickListener() {
public void onClick(View v) {
LayoutInflater inflater = LayoutInflater.from(MyActivity.this);
// error here
View alertDialogView = inflater.inflate(R.layout.alert_dialog_layout, null);
WebView myWebView = (WebView) findViewById(R.id.DialogWebView);
myWebView.loadData(webContent, "text/html", "utf-8");
AlertDialog.Builder builder = new AlertDialog.Builder(MyActivity.this);
builder.setView(alertDialogView);
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
}).show();
}
Run Code Online (Sandbox Code Playgroud)
};
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:orientation="vertical">
<webView android:id="@+id/DialogWebView" android:layout_height="wrap_content"
android:layout_width="fill_parent" android:layout_marginLeft="20dip"
android:layout_marginRight="20dip" android:textAppearance="?android:attr/textAppearanceMedium" />
Run Code Online (Sandbox Code Playgroud)
但是,我在"查看alertDialogView = inflater.inflate(R.layout.dialog_layout,null)"时收到错误;" 说"android.view.InflateException:二进制XML文件行#6:错误膨胀类webView"和"11-26 17:15:47.934:错误/ AndroidRuntime(4699):引起:java.lang.ClassNotFoundException:android.view装载机中的.webView dalvik.system.PathClassLoader@43457e60"
有人知道发生了什么事吗?AlertDialog是否支持WebView?提前感谢您的任何建议.
干杯,克里斯
[编辑]对不起我的意思是对女人没有冒犯,这个问题困扰了我好几次.我只想知道传统的或通用的方式(在数据库和其他编程语言中).谢谢.
是否有使用布尔值显示性别的传统方法?
它们在所有语言中都是一样的吗?JAVA,C,Objc,数据库?
我想我们应该对男性使用true(1)而对女性使用false(0)?
谢谢.
简答:
从对象库中拖动一个Object并将其类设置为委托.
细节见下面的答案.
我不小心从mainwindow.xib中删除了app delegate.我到处查看,但仍无法找到将其添加回去的方法.我试图在网上找到它但仍然没有结果.任何人都可以帮我修复它吗?谢谢.
我的项目
其他的项目
的main.m
#import <UIKit/UIKit.h>
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, nil);
}
}
Run Code Online (Sandbox Code Playgroud)