2014-09-04 79 views
0

如何在Xamarin for iOS中獲取clickUIImageView事件?uiimageview ios Xamarin C上的點擊事件#

public UIImageView img_UploadImage { get; set;} 

public ConstructorClasss(){ 
img_UploadImage = new UIImageView(); 
img_UploadImage.Frame = new RectangleF(100,100,60,50); 
img_UploadImage.Image = UIImage.FileName ("UploadLocal.png"); 
} 

我需要用手勢挖掘UIimageview或有任何click事件UIImageView

在鈦中有click事件UIImageViewactionListner。 請讓我知道Xamarin有沒有click事件?

+0

http://stackoverflow.com/q/3775577/3507404 – Ingweland 2014-09-04 10:03:48

+0

是,T從技術上講,所有UIView類都有一個GestureRecognizers集合,您可以添加getsture支持。沒有與UIImageView關聯的「Click」。 – jensendp 2014-09-08 17:42:00

回答

8

從技術上講,Xamarin.iOS中的UIImageView沒有Click事件,因爲iOS SDK中沒有UIImageView的Click事件。 Xamarin將iOS SDK概念直接映射到C#構造,因此您在C#中看到的內容就是您在Objective-C中看到的(大部分)。在Titanium中看到的是他們自己的抽象和功能被添加到他們特定的框架上,除了實際的iOS SDK之外。

話雖如此,爲你一個可行的選擇(因爲它看起來像你想使用UIImageView作爲一個按鈕,是簡單地創建一個看起來像一個圖像,而不是其他方式的按鈕。工作。

public UIButton img_UploadImage { get; set; } 

public ConstructorClass(){ 
    img_UploadImage = UIButton.FromType(UIButtonType.Custom); 
    img_UploadImage.Frame = new RectangleF(100, 100, 60, 50); 
    img_UploadImage.setImage(UIImage.FromFile("UploadLocal.png"); 

    //Set up event handler for "Click" event ("TouchUpInside in iOS terminology) 
    img_UploadImage.TouchUpInside += (object sender, EventArgs e) => { 
      //Do some action. 
    }; 
} 
+0

哎唷! Downvoted沒有評論。 *淚* :-) – jensendp 2014-09-05 20:03:35

+0

!哎呀對不起先生的投票..... !!!它是我的錯誤 – kiran 2014-09-08 20:11:03

+0

沒問題。它不會打擾我。我很好奇,如果我錯了什麼。如果我提交不正確的答案,我想更正。這是學習的最佳方式。 – jensendp 2014-09-08 20:15:57

2

試試這個工作對我來說

private void AddTapGesture() 
{ 
    // you can achieve this from user interface look image below 
    YourImageView.UserInteractionEnabled = true; 
    var tapGesture = new UITapGestureRecognizer(this, 
     new ObjCRuntime.Selector("ImageTrigger:")) 
    { 
     NumberOfTapsRequired = 1 // change number as you want 
    }; 
    YourImageView.AddGestureRecognizer(tapGesture); 
} 

[Export("ImageTrigger:")] 
public void ImageTrigger(UIGestureRecognizer sender) 
{ 
    System.Diagnostics.Debug.WriteLine("Button Clicked"); 
} 

enter image description here