gpt4 book ai didi

ios - 拖放而不删除 UIBUTTON

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:43:09 25 4
gpt4 key购买 nike

问题是我必须触摸两次才能拖动按钮..当我第一次触摸时它会自动复制按钮和触摸..现在我想要的是第一次触摸并拖动..

point = [[[event allTouches] anyObject] locationInView:self.view];

NSData *archivedData = [NSKeyedArchiver archivedDataWithRootObject:(id)touch];

UIButton * anotherButton =(id) [NSKeyedUnarchiver unarchiveObjectWithData:archivedData];

UIImage *senderImage=[(id)touch imageForState:UIControlStateNormal];

CGImageRef cgImage = [senderImage CGImage];

UIImage *copyOfImage = [[UIImage alloc] initWithCGImage:cgImage];

[anotherButton setImage:copyOfImage forState:UIControlStateNormal];

[anotherButton addTarget:self action:@selector(wasDragged:withEvent:)forControlEvents:UIControlEventTouchDragInside];

[self.view addSubview:anotherButton];

最佳答案

这应该可以解决您的问题,

1)声明,

@property(weak, nonatomic) IBOutlet UIButton *button;
@property(strong, nonatomic) UIButton *tempButton;


2) 将手势识别器添加到您的按钮,

UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)];
[self.button addGestureRecognizer:panGesture];


3) 添加这个句柄方法,

- (void) handlePan:(UIPanGestureRecognizer *)recognizer {

switch([recognizer state]){
case UIGestureRecognizerStatePossible : {

}break;
case UIGestureRecognizerStateBegan: {
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button setFrame:self.button.frame];
[button setTitle:self.button.titleLabel.text forState:UIControlStateNormal];
[self.view insertSubview:button belowSubview:self.button];
self.tempButton = button;
NSLog(@"UIGestureRecognizerStateBegan");
}break;
case UIGestureRecognizerStateChanged: {
CGPoint translation = [recognizer translationInView:self.view];
recognizer.view.center = CGPointMake(recognizer.view.center.x + translation.x,
recognizer.view.center.y + translation.y);
[recognizer setTranslation:CGPointMake(0, 0) inView:self.view];
}break;
case UIGestureRecognizerStateCancelled: {

}break;
case UIGestureRecognizerStateFailed: {

}break;
case UIGestureRecognizerStateRecognized: {
[self.tempButton removeFromSuperview];
self.tempButton = nil;
}break;
}
}

关于ios - 拖放而不删除 UIBUTTON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16523675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com