MorphView オブジェクト上の指の位置を追跡する MorphView.h ファイルがあります。
#import <UIKit/UIKit.h>
@interface MorphView : UIButton
@property (nonatomic) float morphX;
@property (nonatomic) float morphY;
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event ;
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event;
@end
メイン ビュー コントローラからボタンの morphX を「観察」したい。私は重要な価値の観察を読み、これを行いました。
ViewController.m の init
MorphView* morphPadBtn = [MorphView buttonWithType:UIButtonTypeCustom];
[morphPadBtn addTarget:self action:@selector(morphPressedDown:withEvent:) forControlEvents:UIControlEventTouchDown];
UIImage *buttonbkImage = [UIImage imageNamed:@"buttonback"];
[morphPadBtn setBackgroundImage:buttonbkImage forState:UIControlStateNormal];
[morphPadBtn setAdjustsImageWhenHighlighted:NO];
morphPadBtn.frame = CGRectMake(300, 200, 300, 300.0);
[self.view addSubview:morphPadBtn];
[morphPadBtn addObserver:morphPadBtn forKeyPath:@"morphX" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:nil];
また、観察に必要な機能も果たしました。
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
if([keyPath isEqualToString:@"morphX"])
{
NSLog(@"Success in observation!");
}
}
しかし、「観測成功」が印刷されているのが見えません。私はこれを間違っていますか?私が望むのは、メイン ビュー コントローラーから morphX 値を追跡することだけです。
ありがとう!