【问题标题】:Advertise and event广告和活动
【发布时间】:2012-06-19 20:15:52
【问题描述】:

所以我有一个UIScrollView 和多个UIImageViews 我必须生成自己的滚动视图类才能利用它的touchesEnded

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
//    [super touchesEnded:touches withEvent:event];

    UITouch  *touch = [touches anyObject];
    CGPoint   point = [touch locationInView:self];

    if ((int)(point.x / 100) < [[self items] count] ) {
        NSLog(@" ENDED  D    File Selected is   %@     %d   " , [[self items]  objectAtIndex:(int)(point.x / 100) ]   ,  (int)(point.x / 100)   );
    }
//    [[self nextResponder] touchesEnded:touches withEvent:event];
}

items 是一个NSMutableArray,我在其中存储每个子视图指向的文件的名称,所以基本上是subview[0] === item[0] 等...

subview[0] 是图像视图,item[0] 是该图像的fileName

我的问题是我现在如何“做广告”提醒原始调用者选择了文件 xyz ?与NSLog 行相反?

提前致谢

【问题讨论】:

    标签: iphone objective-c ios5 uiscrollview uiimageview


    【解决方案1】:

    “原始调用者”是什么意思? -touchesEnded:withEvent: 由框架事件处理子系统调用。

    你可能会做(但不要!见下文)是添加一些你自己的委托方法到现有委托(显然已经有一个UIScrollViewDelegate 协议和相应的-[UIScrollView delegate] 属性)并调用到您定义的委托方法来代替您的NSLog()。我在recent answer 中讨论了这样做的禁忌。

    但是,这一切都没有实际意义,因为您确实在倒退并为自己创造了许多不必要的工作。我将首先说某些类的子类化应该是您需要重新考虑您的设计的触发器。 UIScrollView 就是这样一类。

    您已经确认您拥有UIImageView 对象的集合。你应该让他们处理交互。一般的想法是:

    1) 向每个实例发送类似[imageView setUserInteractionEnabled:YES]; 的内容。这是使用交互式图像视图时最常被忽视的一个错误。

    2) 为每个图像视图添加适当的具体UIGestureRecognizer 实例并实现手势识别器回调。除非您绝对必须支持古老的 iOS 版本,否则您应该始终尝试使用手势识别器来代替显式触摸处理。

    3) 在手势识别器回调中,添加基于发送手势识别器的-view 采取适当操作的逻辑代码。 (例如,您可以检查相应视图的 -image-frame 并使用这些信息来决定触摸了哪个图像。)

    由于手势识别器回调很可能在您的视图控制器中,因此与您的其余代码“对话”会容易得多。

    【讨论】:

    • 原始调用者 => 我猜是当前的 ViewController。不管叫什么scrollView
    • 我想我找到了使用 NSNotififcationCenter 的解决方案我有一个 postNotificationName 代替 NSLog 行,然后在 ViewController 的 viewDidLoad 函数中我有一个似乎正在工作的 addObserver。不知道对不对?
    • @BarryF 不,请重新阅读我写的内容。您正在从事通常称为“与框架作斗争”的活动。 NSNotificationCenter 对于对象之间的松散关系很有用。它不适用于此用途。请尝试手势识别方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-07
    • 2012-09-28
    • 2019-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多