我有一个视图,UIPanGestureRecognizer可以垂直拖动视图.所以在识别器回调中,我只更新y坐标来移动它.这个视图的超级视图有一个UIPanGestureRecognizer水平拖动视图,只是更新x坐标.
问题是第一个UIPanGestureRecognizer是事件是垂直移动视图,所以我不能使用超视图手势.
我试过了
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
shouldRecognizeSimultaneouslyWithGestureRecognizer:
(UIGestureRecognizer *)otherGestureRecognizer;
Run Code Online (Sandbox Code Playgroud)
两者都会奏效,但我不希望如此.我希望只有在运动明显水平的情况下才能检测水平.所以如果UIPanGestureRecognizer有一个方向属性会很棒.
我怎样才能实现这种行为?我发现文档很混乱,所以也许有人可以在这里更好地解释它.
想象一下,我在一个已经有后台线程的服务中.我可以在同一个线程中使用齐射进行请求,以便回调同步发生吗?
这有两个原因: - 首先,我不需要另一个线程,创建它是一种浪费. - 其次,如果我在ServiceIntent中,线程的执行将在回调之前完成,因此我将没有来自Volley的响应.我知道我可以创建自己的服务,其中包含一些我可以控制的runloop的线程,但是需要在volley中使用此功能.
谢谢!
我升级到Xcode 4.6,每当我调试并且第一次执行"po"来检查对象时,调试器需要1分钟才能返回.之后,每个"po"命令都会像往常一样快速运行.
你们这些人也看到了这个吗?任何修复?
谢谢
我正在查看示例和代码,但我没有看到任何实现.这个阶段有可能吗?
我是gradle和Android Studio的新手,我正在试图弄清楚如何运行测试.我按照http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Testing中的说明操作,我可以运行仪器测试,但只能执行/gradlew connectedInstrumentTest.我在理解其他check任务时遇到了麻烦,这些任务不会在我的应用程序中执行任何代码.这是什么./gradlew tasks prints
...
Verification tasks
------------------
check - Runs all checks.
connectedCheck - Runs all device checks on currently connected devices.
connectedInstrumentTest - Installs and runs the tests for Build 'Debug' on connected devices.
deviceCheck - Runs all device checks using Device Providers and Test Servers.
...
Run Code Online (Sandbox Code Playgroud)
如果check运行所有检查...不应该运行我得到的那些connectedInstrumentTest?
另外,如何运行不需要Android环境的测试?我应该将它们放在/ test/java下吗?如果是这样,我应该运行什么命令来执行它们?
很抱歉,如果这些问题看起来非常明显,但我在文档中找不到这些问题的任何答案.
谢谢!
编辑:
所以我在这里取得了一些进展.它似乎check没有做任何事情.(现在)开发人员可以添加相关任务check来运行一些JUnit测试.您将需要创建一个任务,让它找到源,编译它们并运行它们.
connectedCheck和connectedInstrumentTest:在设备中运行instrumentationTest.(这总是奏效).
deviceCheck:正如文档所说,这对于Continuos集成测试很有用.
我正在实现UIScrollViewDelegate并用它做很多事情.但是,我刚刚发现了一个烦人的问题.
我希望scrollViewDidEndDecelerating:将后总是叫scrollViewWillBeginDecelerating: .但是,如果我只是触摸我的ScrollView(实际上我正在触摸scrollView中的按钮),则会调用scrollViewDidEndDecelerating:并且不会调用scrollViewWillBeginDecelerating:.
那么我怎么能避免使用scrollViewDidEndDecelerating:当我只是按下UIScrollView中的按钮时调用?
谢谢!
我想模仿UIScrollView行为,当你拖动scrollView时当前线程RunLoop模式更改为UITrackingRunLoopMode,并在停止拖动时返回NSDefaultRunLoopMode.
我想用我自己的类来做,但是拖着视图......现在我正在使用这段代码
while (_draggingView && [[NSRunLoop currentRunLoop] runMode:UITrackingRunLoopMode beforeDate:[NSDate distantFuture]]);
Run Code Online (Sandbox Code Playgroud)
当我停止拖动时,_draggingView更改为nil,因此我停止在该模式下循环.这样做有更优雅/更好的方式吗?
UIScrollView是如何做到的?输入源?
谢谢
我正在构建一个我可能考虑开源的项目.我有一个UIView类别,它为我提供了设置x,y坐标或宽度的简单访问器,并直接留给了UIView,而不需要处理框架.我的问题是,如果我计划开源,我应该在我的项目中使用这些类别吗?
很多项目都有类似的类别和UIView的方法
- (void)setLeft:(CGFloat)left;
Run Code Online (Sandbox Code Playgroud)
要么
- (void)setX:(CGFloat)x;
Run Code Online (Sandbox Code Playgroud)
我的理解是,如果两个类别创建一个方法,您将不能保证将要调用哪个方法.
所以我该怎么做?根本不使用类别并在我的开源项目中处理这个烦人的代码?使用类别并可能在方法名称前加上?
谢谢!
当我从我的活动中调用startActivity(Intent intent)时,总是在它上面调用onDestroy()方法,所以我失去了碎片的状态等等......
我的理解是应该调用onStop,并且可以调用onDestroy,也可以不调用onDestroy.但我的经验是原始活动总是被破坏.
据我所知,如果我有一个带有listView的活动,有一个适配器等等... Android不会指望我只是因为我在这个上面推送另一个活动而对适配器的状态进行分析,对吧?
我对么?什么可能触发这种行为?
谢谢
首先,我来自iOS环境,所以这就是为什么这个问题可能很明显的原因.
我知道Android有Garbage Collector,但是对象仍然引用(保留)其他对象,我的理解是GC只会删除一个没有引用的对象(可能我在这一点上错了).看看这段代码:
private void addDefaultTextWatcher(final EditText editText) {
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
value = s.toString();
if (getOnValidate() != null) {
getOnValidate().validate(editText, s.toString());
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
editText有一个TextWatcher匿名类的引用,并且该类也有引用editText.垃圾收集者会为我照顾这个吗?如果没有......建议的方法是什么?
我有以下Uri:http:// host/path?param1 = 1¶m2 [] = 2¶m3 [1] = 3
uri.getQueryParameterNames()返回一个值为["param1","param2 []","param3 [1]"]的数组,这是预期的.
但是当将这些值传递给getQueryParameter时,我得到:uri.getQueryParameter("param1")=="1"uri.getQueryParameter("param2 []")== null uri.getQueryParameter("param3 [1]")== null
我试过没有括号部分传递参数的名称,它也不起作用.也调用getQueryParameters()不起作用.
谢谢你的帮助!
我正在后台线程中读地址簿,我正在使用以下堆栈跟踪获得一些崩溃报告.
0 libsystem_kernel.dylib
__pthread_kill + 8
1 libsystem_c.dylib
abort + 94
2 AppSupport
abortAfterPassingIntegrityCheck + 38
3 AppSupport
runIntegrityCheckAndAbort + 526
4 AppSupport
checkResultWithStatement + 120
5 AppSupport
CPSqliteStatementReset + 60
6 AddressBook
_imageStoreHasFullSizeImageForRecord + 102
7 AddressBook
ABCImageStoreHasImagesForRecordWithFormat + 48
8 AddressBook
ABCImageStoreHasImagesForRecord + 14
9 AddressBook
ABCPersonHasImageDataEntries + 186
10 AddressBook
ABCPersonHasImageData + 10
11 AddressBook
ABPersonHasImageData + 8
12 Brewster ? AddressBookHandler.m line 501
-[AddressBookHandler needToImportPhotoContacts] + 50
Run Code Online (Sandbox Code Playgroud)
我无法复制,所以有时只会发生.此代码只是试图查看ABPerson是否有图像.什么可能导致这个?
谢谢.
android ×6
ios ×6
java ×2
uiscrollview ×2
gradle ×1
nsrunloop ×1
objective-c ×1
open-source ×1
testing ×1
uri ×1
xcode ×1
xcode4.6 ×1