2012-02-27 92 views
0

照相馆在我的应用程序的iPhone/iPad的(在Objective-C)的特定区域,也有一些的UIButton的和其他活动和UIImageView的。图像覆盖整个屏幕,我想的是,当一个触摸屏幕的上部或底部区域(装置假设在上部区域中的一个按钮),则图像大小调整为特定的大小。获取触摸事件像iphone

,但我不能够认识到,如果一个触摸上部区域或不一样,在照片库的iPhone(这里如果我触摸上/下区出现的导航按钮,同样的事情,我想在我的应用程序)。

我已经在我的应用程序的触摸事件:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {} 
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {} 
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {} 

如果有人有任何想法或解决方案,请让我知道。

+0

导航会显示在按在相册中,不仅仅是上/下区域。 – rckoenes 2012-02-27 10:39:24

+0

是的,我是指在照片库中,如果我在iphone那么的下部区域,触摸它显示的导航区域,否则只是显示全屏----------相同的行为我想对我的形象应用程序。 – 2012-02-27 11:17:16

+0

当您在图像中间点击时,它也会显示导航。当你再次点击时,导航将消失。因此,无需检测用户是否在视图的上部或下部区域轻敲。只需检测用户是否在视图中的任何位置点击即可。 – rckoenes 2012-02-27 11:18:36

回答

1

最明显的解决办法是子类的UIImageView,然后覆盖它的touchesBegun:withEvent:方法方法和该方法检查在实际的触摸发生了:

- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    UITouch * touch = (UITouch *)[touches anyObject]; 
    CGPoint location = [touch locationInView:self]; 

    if (location.y > some_arbitrary_value || location.y < some_other_arbitrary_value) 
    { 
     //touched upper or lower part 
    } 

} 
+0

我已经试过这一点,但我没有任何具体的点,因为有其正在运行时生成的一些动态控件来限制的区域。 – 2012-02-27 12:21:21

+0

那么?只需获取这些控件的框架并在此函数中使用它们即可。 – 2012-02-27 12:39:55

+0

嗨...感谢它现在完美。我有一个问题---在我的应用程序有UIScrollViewer(这里面的UIImageView),当userinteractionenabled = true,则触控事件在应用程序的火灾。我如何使用userinteractionenabled = true启用触摸事件。 – 2012-02-28 09:54:53