UIControlEventTouch...?

Posted

技术标签:

【中文标题】UIControlEventTouch...?【英文标题】:UIControlEventTouch...? 【发布时间】:2009-10-14 08:23:50 【问题描述】:

我有一个图像/按钮网格,我希望用户能够将他们的手指拖到图像/按钮上,以便当他们的手指触摸每个图像/按钮时调用一个事件。

我该怎么做???

我现在能想到的最好的例子是联系人应用程序,你如何将手指向下拖动到字母列表(在右侧),当你触摸每个字母时,它会跳转到联系人列表的那个部分。

【问题讨论】:

【参考方案1】:

你会想要在你的 UIViewController 中实现-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event。每当触摸在屏幕上移动时,都会调用此方法。然后,您可以使用坐标(使用[myUITouch locationInView:self.view])或[self.view.layer hitTest:[myUITouch locationInView:self.view]] 来获取触摸发生的图像/按钮并从中工作。

例如,如果我有一排 10 张图像,每张 32 像素 x 32 像素,并且我想记录每个图像被触摸的时间,我可以执行以下操作:

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 
    CGSize buttonSize = myButton.bounds.size;
    CGPoint touchPoint = [[touches anyObject] locationInView:self.view];
    if (touchPoint.y < buttonSize.y) 
        NSInteger buttonNumber = touchPoint.x/buttonSize.x;
        NSLog(@"Button number %d pushed", buttonNumber);
    

请注意,这假设多点触控已禁用,否则它将随机选择一个触控来记录

【讨论】:

以上是关于UIControlEventTouch...?的主要内容,如果未能解决你的问题,请参考以下文章

UI设计是啥?

.ui-dialog button.ui-button.ui-state-hover .ui-button-textcolor:black 到 jquery

EasyClik 原生UI连载四十二 重启UI

ui设计设计题目

功能模块:选择一个UI后该ui高亮 选择其他ui 其他UI高亮 刚好的UI关闭高亮

什么是ui?