我正在使用UIPanGestureRecognizer来识别UITableView中的水平滑动(准确地说在单元格上,尽管它被添加到表本身).然而,这个手势识别器显然从表中窃取了触摸.我已经有了pangesturerecognizer来识别水平滑动,然后对齐; 但是如果用户通过垂直滑动开始,它应该将该触摸的所有事件传递给tableview.
我尝试过的一件事是禁用识别器,但它不会滚动直到下一个触摸事件.所以我需要它立即通过该活动.
我尝试的另一件事就是让它自己滚动,但是在停止触摸后你会错过持久的速度.
下面是一些代码:
//In the viewdidload method
UIPanGestureRecognizer *slideRecognizer = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(sliding:)];
[myTable addGestureRecognizer:slideRecognizer];
-(void)sliding:(UIPanGestureRecognizer *)recognizer
{
if (recognizer.state == UIGestureRecognizerStateBegan)
{
CGPoint translation = [recognizer translationInView:favoritesTable];
if (sqrt(translation.x*translation.x)/sqrt(translation.y*translation.y)>1) {
horizontalScrolling = YES; //BOOL declared in the header file
NSLog(@"horizontal");
//And some code to determine what cell is being scrolled:
CGPoint slideLocation = [recognizer locationInView:myTable];
slidingCell = [myTable indexPathForRowAtPoint:slideLocation];
if (slidingCell.row == 0) {
slidingCell = nil;
}
}
else
{
NSLog(@"cancel");
}
if (recognizer.state == UIGestureRecognizerStateEnded …Run Code Online (Sandbox Code Playgroud) iphone cocoa-touch objective-c uitableview uigesturerecognizer
我的应用程序大量使用GCD,几乎所有内容都分散在由调度处理的小任务中.但是,基础数据模型主要是读取的,只是偶尔写入.
我目前使用锁来防止在阅读时更改关键数据结构.但是在今天看了一些锁之后,我发现了NSConditionLock和一些关于读写锁的页面.后者正是我所需要的.
我找到了这个实现:http://cocoaheads.byu.edu/wiki/locks.我的问题是,这个实现是否适用于GCD,看到它使用PThreads?
iphone multithreading locking objective-c grand-central-dispatch
我有一个包含记录列表的表.每次迭代时,必须从特定偏移量开始随机选择这些迭代.每行都有机会被挑选(因此,例如新的或不经常挑选的行被挑选更多).
但是,某些东西不起作用,导致返回的行不满足使用别名的条件rand().
我正在尝试使用以下查询:
select
id,
probability,
rand() rolledChance
from records
where id > :offset
having rolledChance < probability;
Run Code Online (Sandbox Code Playgroud)
其中:offset是预准备语句参数,并且是此用户上次迭代中的最后一次扫描ID.
在这样创建的表上(这是表的相关子集):
CREATE TABLE records (id INT, probability FLOAT);
Run Code Online (Sandbox Code Playgroud)
其中概率是表中0到1之间的值records.但是,这会返回条件不满足的行.我用以下查询检查了这个:
select
*,
x.rolledChance < x.probability shouldPick
from
(select
id,
probability,
rand() rolledChance
from records
having rolledChance < probability
) x;
Run Code Online (Sandbox Code Playgroud)
返回的几行是:
id probability rolledChance shouldPick
12 0.546358 0.015139976530466207 1
26 0.877424 0.9730734508233829 0
46 0.954425 0.35213605347288407 1
Run Code Online (Sandbox Code Playgroud)
当我按如下方式重新调整第二个查询时,它按预期工作,只返回rolledChance实际低于的行probability:
select
*, …Run Code Online (Sandbox Code Playgroud) 我的应用程序的一部分显示了一个风景,但它现在有点无聊.因此,我打算在屏幕上制作一些粒子的动画(想想像小翅膀的东西 - http://www.youtube.com/watch?v=DpmcX-rWGfs).但是,我还没有找到任何内置的粒子系统; 我怎样才能有效记忆?我已经使用CADisplayLink实现了我自己的动画系统,可以让一些云在景观上动画,而且它有点迟钝(尽管我希望很快就能让它更快).另一个非常重的系统,比如我想一次动画20个小点,可能会破坏它.
在我的基于CodeIgniter的站点(成员管理系统)上,有创建直接借记文件的功能.这些是通过设置标题来下载的,如下所述:http://www.richnetapps.com/the-right-way-to-handle-file-downloads-in-php/.但是,由于某种原因,在我自己的输出之前总是输出一个空行.我已经尝试替换我返回的字符串中的所有换行但没有成功.输出是一个XML文件,由于这个空行,我的银行不接受该文件作为有效的XML.
我已经发现帖子说这可能是因为PHP在当前文件之前关闭了文件中的标签.这可能是原因,但是加载了几个第三方库,如果您仍然希望保留更新库的选项,则可以撤消手动删除每个文件中所有关闭的PHP标记.似乎特别是Smarty喜欢这些结束标签.
直接访问文件本身也不是一个选项,因为默认情况下CodeIgniter不允许这样做,并且因为这种方法存在相当大的安全问题(公共可访问的文件中包含银行帐户详细信息是一个很大的禁忌).
因此,我来找你:你知道另一个可能解决这个问题的方法吗?
编辑:这是用于下载的代码.
function incasso_archive($creditor, $date, $time, $extension)
{
$date = str_replace("_", "-", $date);
$fn = $this->incasso->incasso_file($creditor, $date, $time, $extension);
$contents = file_get_contents($fn);
$name = "Incasso $date.$extension";
header('Content-Type: application/octet-stream');
header('Content-Transfer-Encoding: Binary');
header('Content-disposition: attachment; filename="'.$name.'"');
echo $contents;
}
Run Code Online (Sandbox Code Playgroud) 基本上,我想要做的是为云动画,然后在风变化时改变动画中的速度和/或方向.如果重要的是,我从UIViewController控制整个事情,云存在一个UIView,其上面有一个CALayer,这就是云本身.我也尝试过UIImageView.
对于TL:DR类型,简而言之,我要做的是获取动画视图的位置,或使用块动画停止动画视图.
这是完整的故事.我的问题是在动画期间获得它的位置.我正在使用块动画.因为我只知道它应该移动的速度,我需要通过使用距离来计算自己的时间.我尝试了以下代码,以及它的几个变体:
[[Cloud CloudImage]convertPoint:CGPointMake([[[Cloud CloudImage] presentationLayer] position].x, 0) toLayer:self.layer].x
Run Code Online (Sandbox Code Playgroud)
Cloud是UIView,CloudImage是CALayer.这是我尝试过的最复杂的变化,我尝试了各种更简单的变体(例如,直接询问云,或者使用UIView而不是CALayer).但是,它返回的只是它的最终值.我读了一些关于这个方法从3.2中被破坏的东西,但在4.2中被修复了; 但是,当我将部署目标更改为iOS 4.3而不是4.0时,它没有修复.我正在使用4.3 base sdk.
我考虑的一些其他变化是暂时停止动画片刻,然后立即获得位置并开始新动画.但是,我需要知道一种在其轨道中停止基于块的动画的方法,并且我只找到了旧动画系统的片段(commitanimations).
我考虑的最后一个是编写自己的动画系统; 云将在0.08秒左右重复NSTimer,并在每次触发时创建0.08秒的核心动画,为此它使用给予云的速度作为属性.但是,我担心这种情况的任何变化都会有更低的性能,而我需要它尽可能轻,因为我同时有多达20个这样的云(有时也有雨).
提前致谢!
我最近转换为使用ARC.但是,我现在有一个奇怪的崩溃,而且崩溃日志真的没有用.在我的一个应用程序初始化过程中(从服务器获取数据,解析它,设置视图),我得到一个bad_access.这是设备的错误日志:
Incident Identifier: 7CE05452-7C5D-424A-8529-AE7B17C9FEBC
CrashReporter Key: b743ede30ce737293cf7444f67bb8a7b590c2fd9
Hardware Model: iPhone3,1
Process: BoreBeta [231]
Path: /var/mobile/Applications/52A15437-459A-4160-95C4-BF5DF5C98C15/BoreBeta.app/BoreBeta
Identifier: BoreBeta
Version: ??? (???)
Code Type: ARM (Native)
Parent Process: launchd [1]
Date/Time: 2011-08-18 14:53:41.800 +0200
OS Version: iPhone OS 5.0 (9A5288d)
Report Version: 104
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x80000004
Crashed Thread: 0
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 CoreFoundation 0x3758e380 CFRelease + 28
1 CoreFoundation 0x375a93ec -[__NSArrayM dealloc] + 116
2 libobjc.A.dylib 0x30a4e0be _objc_rootRelease + …Run Code Online (Sandbox Code Playgroud) 我正在尝试加速我的应用程序的启动,我的一个想法是使用异步调度队列.我有2个任务可以在启动时彼此相邻运行(实际上是非常大的任务).但是,它们都有一个在主线程上运行的重要部分(主要是UI代码).
dispatch_async(dispatch_get_main_queue, ^{
[self doTask1];
});
dispatch_async(dispatch_get_main_queue, ^{
[self doTask2];
//Will task 2 take turns with task 1, or will task 2 start after 1 is finished?
});
Run Code Online (Sandbox Code Playgroud)
我的问题是:如果我在启动时调用2个dispatch_async,就像在这个例子中一样,它们会轮流执行,还是先完成第一个块,然后执行第二个块?
iphone multithreading objective-c grand-central-dispatch ios
我正在尝试获取一张谷歌地图的快照.但是,mapkit似乎没有类似的功能.有没有办法在不违反Google协议的情况下获取谷歌地图的一部分图像文件?
PS拍摄iphone的屏幕截图不是一个选项,因为我可能需要一个主要在屏幕外的部分的快照.
iphone ×7
objective-c ×7
cocoa-touch ×2
ios ×2
xcode ×2
codeigniter ×1
download ×1
google-maps ×1
locking ×1
mapkit ×1
mariadb ×1
mysql ×1
particles ×1
php ×1
uitableview ×1