1
我有一个MorphView.h文件,它跟踪MorphView对象上手指的位置。iOS中的值观察
#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
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];
的init和也做了观测所需的功能。
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
if([keyPath isEqualToString:@"morphX"])
{
NSLog(@"Success in observation!");
}
}
但是,我没有看到“成功观察”正在打印。我做错了吗?我想要的只是从我的主视图控制器跟踪我的morphX值。
谢谢!
嗨,对不起,我真的开始与morphX那里,并改变它,因为它不工作。当MorphView.morphX更改为morphX时仍然不起作用。编辑。 – lppier
查看我的更新。你设置了错误的观察者。 – rmaddy
嗯,它仍然无法正常工作。我需要在MorphView中专门做什么吗?目前我只是在做_morphX = location.x;在touchesBegan – lppier