xCode 4.3.2 を使用して、view.m の initWithFrame に次のコードがあります。
UIPinchGestureRecognizer *recognizer = [[UIPinchGestureRecognizer alloc]
initWithTarget: self action: @selector(pinch:)
];
oldScale = recognizer.scale;
[self pinch: recognizer];
[self addGestureRecognizer: recognizer];
// code to create label is also in here, works. label displays no problem
[self addSubview: label];
私のピンチ方法は次のとおりです。
- (void) pinch: (UIPinchGestureRecognizer *) recognizer
{
NSLog(@"pinch:");
label.bounds = CGRectMake(
(self.bounds.size.width - width * recognizer.scale) / 2,
(self.bounds.size.height - height * recognizer.scale) / 2,
width * recognizer.scale,
height * recognizer.scale
);
label.font = [UIFont systemFontOfSize: 20 * recognizer.scale];
NSString *verdict;
if (recognizer.scale > oldScale) {
verdict = @"spread";
} else if (recognizer.scale < oldScale) {
verdict = @"pinch";
} else {
verdict = @"neither";
}
oldScale = recognizer.scale;
label.text = [NSString stringWithFormat: @"%@ %g",
verdict, recognizer.scale
];
}
私は実際に initWithFrame メソッドでピンチを呼び出しているため、一度実行されますが、iphone シミュレーターでピンチを実行すると、まったく登録されません。私が知らないxcode 4.3.2にいくつかの設定がありますか? このコードは、実行しようとした他のすべての場所で機能しますが、これらのバージョンの xcode はすべて 4.3 です。