我有一个父视图控制器,并且有一个子视图(UIView)。
子视图(名为xibSubView)被称为其他自定义类(xib)文件。
当我点击父Viewcontroller时,子视图(UIView)将动画触摸父视图控制器上的开始位置。
父视图控件具有
// UIViewcontroller.h file
.....
@property (weak, nonatomic) IBOutlet XibSubView *xibSubView;
.....
以下代码位于父视图控制器.m
中 -(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
self.subViewConstraint.constant = touchLeftScreenPoint.x ;
self.subViewConstraint.constant = touchLeftScreenPoint.y ;
}
-(void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
}
-(void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
}
xib(subview-xibSubView)代码具有相同的委托方法。
// The code is in the parent viewcontroller .m
-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
}
-(void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
}
-(void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
}
在xibSubView中有很多元素。
其中一个元素将移动到子视图中的单击位置(xibSubView)。
所以我想将父视图控制器触摸传递给xibSubView。
手动调用xibSubView中的touchBegan让元素运动。
所以我应该将父视图控制器触摸位置转换为子视图触摸位置。
子视图触摸x位置,y位置将减去viewcontroller的宽度和高度,并手动调用touchbegan方法。
但我不知道如何更改触摸x,y值恢复到触摸。
然后调用代码:
[self.xibSubView touchesBegan:touches withEvent:event];
如何更改NSSet触摸x,y变量并恢复到触摸。
非常感谢。
答案 0 :(得分:4)
<强>夫特强>
NSMutableArray *touchArray = [NSMutableArray new];
[touchArray addObject:[UITouch new]];
NSSet *touches = [[NSSet alloc] init];
[touches setByAddingObjectsFromArray:touchArray];
[self touchesBegan:touches withEvent:UIEventTypeTouches];
答案 1 :(得分:0)
ViewController.m
DiffMerge
view.h
#import "ViewController.h"
#import "view.h"
@interface ViewController ()
{
view *v;
}
@end
@implementation ViewController
- (void)viewDidLoad {
v=[[view alloc]initWithFrame:CGRectMake(10, 10, 100, 100)];
[self.view addSubview:v];
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[v touchesBegan:touches withEvent:event];
}
@end
view.m
#import <UIKit/UIKit.h>
@interface view : UIView
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
@end