bu
NSPratik davası için
UIButton *aButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
aButton.frame = CGRectMake(xValue, yValue, 45, 45);
[aButton addTarget:self action:@selector(holdDown) forControlEvents:UIControlEventTouchDown];
[aButton addTarget:self action:@selector(holdRelease) forControlEvents:UIControlEventTouchUpInside];
- (void)holdDown
{
NSLog(@"hold Down");
}
- (void)holdRelease
{
NSLog(@"hold release");
}
deneyin: yerine parmak bırakmadan kullanıcı uzun basma düğmesi ve bir süre sonra, kullanıcı onun/hareket edecek olursa u olay UIControlEventTouchUpOutside
kullanabilirsiniz parmağını düğmenin sınırları dışına. Bir etkinlik daha ekle.
UIButton *aButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
aButton.frame = CGRectMake(xValue, yValue, 45, 45);
[aButton addTarget:self action:@selector(holdDown) forControlEvents:UIControlEventTouchDown];
[aButton addTarget:self action:@selector(holdRelease) forControlEvents:UIControlEventTouchUpInside];
[aButton addTarget:self action:@selector(holdReleaseOutSide) forControlEvents:UIControlEventTouchUpOutside]; //add this for your case releasing the finger out side of the button's frame
//add this method along with other methods
- (void)holdReleaseOutSide
{
NSLog(@"hold release out side");
}
Swift Versiyon
var aButton:UIButton = UIButton.buttonWithType(UIButtonType.Custom) as UIButton
aButton.frame = CGRectMake(xValue,yValue, 45, 45)
aButton.setTitle("aButton", forState: UIControlState.Normal)
aButton.backgroundColor = UIColor.greenColor()
aButton.addTarget(self, action: Selector("holdRelease:"), forControlEvents: UIControlEvents.TouchUpInside);
aButton.addTarget(self, action: Selector("HoldDown:"), forControlEvents: UIControlEvents.TouchDown)
self.addSubview(testButton)
//target functions
func HoldDown(sender:UIButton)
{
println("hold down")
}
func holdRelease(sender:UIButton)
{
println("hold release")
}
Benim için çalışıyor.Ancak, bunun işe yaramayacağı bir senaryo var. Kullanıcı uzun bir süre basılı tutulduğunda ve bir süre sonra, parmağı serbest bırakmak yerine, kullanıcı parmağını düğmenin sınırları dışına çıkarır. Bu durumda 'holdRelease' aranmayacak ... – NSPratik
@NSPratik i kodu düzenledim, durumunuz için –
Yardımınız için teşekkürler Shan. Desteklenen – NSPratik