-1

私のアプリには UIScrollView があり、その中にプログラムで UIImageViews を作成しました。これは、Xcode のタブ バー テンプレートに基づいています。私がやろうとしているのは、特定の画像が押されたときにタブを変更することです。イベントをタッチとして登録することはできますが、tabIndex を変更しても何も起こりません。次のコードを入力します。

    UITabBarController *tab=self.tabBarController;
        if (tab){
            NSLog(@"Good");
        }
        else {
            NSLog(@"No Good");

常に No Good がログに記録されます。私が書いたコードはここで見ることができます。ここで、私の UIScrollView は ScrollViewer 型です: @implementation scrollViewer - (void) touchesEnded: (NSSet *) touches withEvent: (UIEvent *) event {

if (!self.dragging) {
    NSLog(@"Recieved Touch!");
    UITouch *aTouch = [touches anyObject];
    MainView *theInstance = [[MainView alloc] init];


     CGPoint point = [aTouch locationInView:self];
        theInstance.ycoord = point.y;
        [theInstance touchHand];
}
    [super touchesEnded: touches withEvent: event];
}

@end

どんな助けでも感謝します!

4

1 に答える 1

0

次のサンプル出力は提供されていません。

NSLog(@"Y Coord= %d",adjustedy);

しかし、値が切り替えを引き起こすはずだと思います。

そのため、最初に self.tabbarcontroller をログに記録して、それが nil でないことを確認する必要があります。問題がなければ、システムはタッチ イベント内での切り替えを許可しない可能性があります (とにかく悪い形式です)。私は次のように設定します:

dispatch_async(dispatch_get_main_queue(), ^{ do code here } );

したがって、後で実行されます。

于 2012-08-12T12:07:40.560 に答える