"삭제하려면 스 와이프"하고 싶은 레이블이 있습니다. 내가 원하는 것은 : 사용자가 라벨을 접촉하고, 오른쪽으로 드래그 시작UILabel을 알파 0으로 스 와이프
- 경우 레이블은 손가락
- 오른쪽에있는 더 라벨 움직임을 덜 알파를 함께 이동 gets
- 알파 0에 도달하면 메서드를 발생시킵니다.
어떤 아이디어를 구현하는 가장 좋은 방법은 무엇입니까? 사전에
감사합니다!
"삭제하려면 스 와이프"하고 싶은 레이블이 있습니다. 내가 원하는 것은 : 사용자가 라벨을 접촉하고, 오른쪽으로 드래그 시작UILabel을 알파 0으로 스 와이프
어떤 아이디어를 구현하는 가장 좋은 방법은 무엇입니까? 사전에
감사합니다!
이렇게하려면 UIPanGestureRecognizer
을 사용하는 것이 좋습니다. 제스처 인식기가 시작되면 시작 지점을 추적하고 싶을 것입니다. 끝까지 고려해야 할 금액을 정의 할 수도 있습니다. 냄비가 생기면 터치가 얼마나 멀리 움직 였는지 알게되고 그 양만큼 라벨을 옮깁니다. 또한 "전체 끝까지"거리를 통해 이동 한 경로의 비율을 결정하고 이에 따라 알파를 설정합니다.
지점에 도달하면 제스처 인식기 (enabled
속성을 NO
으로 설정)를 취소하고 그 시점에서 원하는대로 수행 할 수 있습니다. 사용자가 손을 떼면 (제스처 인식기가 끝나기 전에 끝나기 때문에) 분명히 그 위치에서 라벨 위치와 알파를 재설정하고 싶을 것입니다.
팬이 끝날 때의 속력을 고려하고 특정 속도 이상인 경우 계속 진행하여 해당 속력으로 완료 상태로 계속 애니메이트하도록 할 수 있습니다. 빠르면 시작 상태로 되돌려 놓습니다. 그러나 이것을 원한다면 먼저 구현 한 후에는이 작업에만 신경 써야 할 수도 있습니다.
이것을 UIViewController에 넣으십시오.
경고 : 나는 엑스 코드없이이 모든 것을 입력하고 그것을 테스트하지 않았다. 맞춤법 오류를 수정하고 번호를 조정해야 할 수도 있습니다.
// Declare this in the anonymous category of your UIViewController
@property(nonatomic, strong) UILabel* label;
- (void)didSwipeLabel:(UISwipeGestureRecognizer*)swipe;
- (void)willRemoveLabel;
// Put the following in the usual places in .m file
- (void)viewDidLoad {
[super viewDidLoad];
self.label = [UILabel alloc] init];
self.label.font = [UIFont boldSystemFontOfSize:30.0];
self.label.text = @"SWIPE THIS LABEL TO CHANGE THE ALPHA";
[self.label sizeToFit];
[self.label addGestureRecognizer:[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(didSwipeLabel:)]];
[self.view addSubview:self.label];
}
- (void)didSwipeLabel:(UISwipeGestureRecognizer*)swipe
{
// The value of 0.1 needs to be adjusted. Most likely it needs
// to be decreased.
if (swipe.direction == UISwipeGestureRecognizerDirectionRight) {
self.label.alpha = self.label.alpha - 0.1;
} else if (swipe.direction == UISwipeGestureRecognizerDirectionLeft) {
self.label.alpha = self.label.alpha + 0.1;
}
if (self.label.alpha <= 0.0) {
[self willRemoveLabel];
}
}
- (void)willRemoveLabel
{
NSLog(@"label should be removed");
}
좋아요. 라벨 위에 문지르면 사용자의 손가락으로 라벨을 움직일 수 있습니까? – CyberK
'self.label.frame = CGRectMake (self.label.frame.origin.x + 10.0, self.label.frame.origin.y, self.frame.size.width, self.frame.size.height);' @Gavin은 UISwipeGestureRecognizer 대신 UIPanGestureRecognizer를 사용하는 것이 옳습니다. 이 코드를 사용하려면 코드를 조정해야합니다. 그것은 아주 비슷해야합니다. – Pwner
처음 부분에서는 탭 제스처 인식기와 드래그 제스처 인식기가 작동한다고 생각합니다. 기능을 사용하려면 누릅니다. 드래그하여 알파의 위치를 변경하고 사라지게하십시오. –