[英]how to call image on touch event in iphone
我創建了一個應用程序,其中有 2 個圖像視圖,並且我在圖像視圖上添加了圖像。我希望當我單擊我的圖像時,圖像應該被選中並且值應該保存在 sqlite 數據庫中。所以我創建了touches method,and added flags for both the images so when particular image is selected it is identified by its flag. 這是我的代碼:
-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches] anyObject];
CGPoint location= [touch locationInView:self.view];
if(CGRectContainsPoint(firstImage.frame, location))
{
//set some flag like
select=1;
}
else if(CGRectContainsPoint(secImage.frame, location))
{
select=2;
}
[mComment resignFirstResponder];
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches] anyObject];
CGPoint location = [touch locationInView:self.view];
if(CGRectContainsPoint(firstImage.frame, location)) {
if(select==1) {
var=1;
}
else if(CGRectContainsPoint(secImage.frame, location)) {
if(select==2) {
vars=2;
}
select=0;
}
}
}
但是我遇到了一個問題,當我 select 我的第一個圖像正確進入 if 部分並將值 1 存儲到 var 1 但是當我單擊 secimage 它沒有進入 elseif 部分時,它只是退出了循環。可能會發生什么是問題。請幫我解決這個問題。謝謝
可能是您的代碼有錯誤? 嘗試這個
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [[event allTouches] anyObject];
CGPoint location = [touch locationInView:self.view];
if(CGRectContainsPoint(firstImage.frame, location)) {
if(select==1)
{
var=1;
}
}
else if(CGRectContainsPoint(secImage.frame, location))
{
if(select==2)
{
vars=2;
}
select=0;
}
}
以下更改應該可以解決問題:
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches] anyObject];
CGPoint location = [touch locationInView:self.view];
if(CGRectContainsPoint(firstImage.frame, location)) {
if(select==1) {
var=1;
}}
if(CGRectContainsPoint(secImage.frame, location)) {
if(select==2) {
vars=2;
}}
select=0;
}
您上面的代碼不起作用,因為if(CGRectContainsPoint(firstImage.frame, location) == YES
,它永遠不會到達這條線if(CGRectContainsPoint(secImage.frame, location)
代碼也可以稍微清理一下。 不確定這是實現這兩種方法的理想方式,但無論如何它都可以工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.