我已经在这个问题上敲了一会儿,我想出来了.我想回馈社区,因为我从这个网站得到了很多帮助:).
我正在尝试将一个项目从一个UITableView复制到另一个UITableView,我在网上看到的关于如何做到这一点的信息充其量是粗略的.我自己想出来,所以我会描述我的小建筑.
我在UITableView中的person对象是我想要从一个表拖放到另一个表中的对象.我最困难的想法是如何将物品从桌子中弹出并以一个平滑的动作拖动它.在最长的时间内,为了执行操作,我需要两次触摸.
从Person对象开始,这是一个包含图像的简单对象.我必须实现自己的touchesMoved方法,以便在发生拖动时更改Person的中心位置.
-(void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
if( m_moveable == YES ){
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInView:self.superview];
if( 0 < location.x-50 && location.x+50 < 768 ){
if( 0 < location.y-50 && location.y+150 < 1004 ){
self.center = location;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我在初始化时将Person对象的userInteractionEnabled标志设置为NO,这样表中的任何单击都不会被Person对象捕获.在这种情况下,Person对象将在表中移动,这违背了目的.
下一个对象是我的自定义UITableViewCell.该对象负责捕获用户的第一次触摸.它应该做的是抓住这个触摸并"弹出"这个人.Person是属于自定义UITableViewCell的子视图之一.
- (void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
UIView *parent = self.superview.superview.superview;
Person *s = nil;
for( UIView *child in self.subviews ){
if( …
Run Code Online (Sandbox Code Playgroud) 我有UIViewController
和UITableView
作为孩子在视图中,我想要做的是当我触摸任何行时,我在底部显示视图.如果用户触摸除了行或bottomView之外的任何其他位置,我想要隐藏该视图.
问题是当我点击UITableView
它不会触发touchesEnded
事件.
现在我如何检测触摸UITableView
并将其与行选择事件区分开来.
谢谢.
我希望我的UIScrollView及其子视图能够接收子视图中的所有触摸事件.每个人都可以以自己的方式回应.
或者,如果将点击手势转发到子视图,则一切都会很好.
很多人都在这个一般领域挣扎.以下是许多相关问题中的一些问题:
UIScrollView如何从其子视图
中窃取触摸如何从UIScrollView窃取触摸?
如何取消UIScrollView中的滚动
顺便说一句,如果我在滚动视图中覆盖hitTest:withEvent:,只要userInteractionEnabled为YES,我就会看到触摸.但这并没有真正解决我的问题,因为:
1)那时,我不知道它是否是一个水龙头.
2)有时我需要将userInteractionEnabled设置为NO.
编辑:澄清,是的,我想以不同于平底锅的方式对待水龙头.点击应由子视图处理.可以通过滚动视图以通常的方式处理平移.
我在IB的视图上放了一个UIImageView控件.控件的大小只是我决定的,非常随机的大小真正我想做的是每当我将image属性设置为新图像时自动调整大小的控件.我希望它实际调整大小到图像的大小.可以自动完成吗?没有任何代码干预?如果不是 - 在这种情况下最好的方法是什么?
今天发生的事情很奇怪.我将图像加载到ImageView中,即使ImageView的大小没有改变,我也能看到图像正确显示.这干扰了我在ImageView上抓取用户触摸的意图.用户触摸实际图像,但由于图像的某些部分位于ImageView的外部(这是奇怪的部分) - 点映射变得疯狂有人能想到对此的任何解释吗?
谢谢
我有一个小应用程序,允许用户用手指在屏幕上绘图.我有一个UIImageView
用户绘制的地方,通过创建CGContextRef
和各种CG draw
功能.我主要用函数绘制笔画/线条CGContextAddLineToPoint
现在我的问题是:用户可以绘制各种颜色的线条.我想让他能够使用"rubber"
工具用手指删除到目前为止绘制的图像的某些部分.我最初做这个用白色的笔触(设置与CGContextSetRGBStrokeColor
功能),而是因为我后来发现它不工作了... UIImage
在UIImageView
实际上有一个透明背景,不用白...所以我会最后是透明的图像,上面有白线!
无论如何设置一个"transparent"
笔触颜色还是有其他方法来清除CGContextRef
用户手指下的内容,当他移动它时?谢谢
我正在尝试添加一个视图作为按钮的子视图,就像这样(btn1
是UIButton
);
[self.btn1 addSubview:view1];
Run Code Online (Sandbox Code Playgroud)
添加后,按钮不会提供任何与触摸相关的事件,按钮工作正常,不添加此子视图.
有什么想法吗?
似乎只有触摸在该视图的边界内开始时才会调用UIView的所有触摸方法.有没有办法让视图响应在视图外触摸但随后将手指拖入视图的用户?
如果重要,我的具体应用是拖动MKPinAnnotationView(使用内置的4.0拖动).如果用户将一个引脚拖动到另一个视图(这恰好是一个AnnotationView,但它可能是任何东西),我想要发生一些事情.在我放开引脚之前,没有调用拖动的方法; 并且没有方法没有被拖动的UIView似乎被调用,除非我从视图中触摸开始.
因为superview是MKMapView,所以很难只使用touchesMoved事件并检查用户是否在正确的位置.谢谢!
我不明白如何使用event.touches属性.例如,要获得iPad/iPhone上的手指数量,您应该使用
event.touches.length
Run Code Online (Sandbox Code Playgroud)
那为什么这个示例代码不起作用?
$('.image').bind('touchstart', function(event) {
alert(event.touches.length);
});
Run Code Online (Sandbox Code Playgroud)
但这有效:
$('.image').bind('touchstart', function() {
alert(event.touches.length);
});
Run Code Online (Sandbox Code Playgroud)
不应该反过来吗?
我注意到touchesEnded并不总是通过多点触控传递给SKScene.根据移除手指等的速度,我会永远错过一些touchesEnded.touchesCancelled已实现,我添加了一个自定义UIView并放在屏幕的左侧 - 没有问题.我做了一个自定义的SKView并捕获了事件 - 再次没有问题.
显而易见的是,SKScene没有得到所有的触动,而是嵌入了SKView,但为什么呢?
(顺便说一句,我完全没有任何节点地运行SKScene)
编辑:
一些进一步的调查显示我可以让SKScene完全失去联系:
我将3个手指放在显示器上,然后一次取出一个,直到只有一根手指接触.我移动手指 - >只有SKView收到移动事件,SKScene没有.也没有收到touchesEnded.
经过一些实验,我可以说当一个touchesBegan在一次通话中接到超过1次触摸时就会发生这种情况(例如,你同时按下两根手指).然后这两个接触被纠缠在一起,因此只有其中一个发送事件.
这似乎是SKScene中的一个错误.我正在iPhone 5上进行测试
我有2个后代 UIScrollView
我有一个UITableView
显示数据,我在UICollectionView
上面添加了UITableView
view
| - UITableView
| - UICollectionView
Run Code Online (Sandbox Code Playgroud)
在UITableView
只能垂直滚动和UICollectionView
只能水平滚动.我只能滚动我的桌面视图collectionview
不重叠(这是偏离预期的行为),但我需要这样做,以便我可以滚动我tableview
甚至如果我垂直刷我的collectionview
.
我不能简单地将其collectionview
作为子视图添加tableview
因为其他原因(我知道,这将使这项工作)
有没有其他可能让de touches从collectionview
passthrough到tableview
?
touches ×10
ios ×7
objective-c ×4
iphone ×3
uitableview ×3
addsubview ×1
draw ×1
handle ×1
ipad ×1
javascript ×1
jquery ×1
mkmapview ×1
point ×1
resize ×1
sprite-kit ×1
uibutton ×1
uiimageview ×1
uiresponder ×1
uiscrollview ×1