2015-11-24 8 views
6

क्या आईओएस पिकर Xamarin.iOS में उपलब्ध है? मैंने माध्यम से खोज की है लेकिन न तो उदाहरण है और न ही सूचना स्थापित की गई है; हालांकि, यह Xamarin.Form में उपलब्ध है।Xamarin.iOS में पिकर उपलब्ध

+1

मैं जोड़ा एक साधारण उदाहरण ... – SushiHangover

+0

धन्यवाद बहुत रॉबर्ट। ये अदभुत है! – hotspring

+1

एनपी, मैं उदाहरण के द्वारा सीखता हूं और इनमें से सैकड़ों निर्मित हैं क्योंकि मैंने Xammie 101 ;-) ... और अभी भी उन्हें किया है, ऐसा लगता है कि मुझे रोज़ाना कुछ नया लगता है। – SushiHangover

उत्तर

11

एक UIPickerView की एक असली जल्दी उदाहरण: (iOS SDK)

enter image description here

अपने xib करने के लिए एक UIPickerView जोड़ें या स्टोरीबोर्ड slotMachineView कहा जाता है:

using System; 
using UIKit; 

namespace Slots 
{ 
    public partial class ViewController : UIViewController 
    { 
     public ViewController (IntPtr handle) : base (handle) 
     { 
     } 

     public override void ViewDidLoad() 
     { 
      base.ViewDidLoad(); 
       slotMachineView.Model = new StackOverflowModel (selectedLbl); 
     } 

     public override void DidReceiveMemoryWarning() 
     { 
      base.DidReceiveMemoryWarning(); 
     } 
    } 

    public class StackOverflowModel : UIPickerViewModel 
    { 
     static string[] names = new string [] { 
      "pscorlib.dll", 
      "pscorlib_aot.dll", 
      "Mono.PlayScript.dll", 
      "PlayScript.Dynamic.dll", 
      "PlayScript.Dynamic_aot.dll", 
      "PlayScript.Optimization.dll", 
      "playshell.exe", 
      "psc.exe" 
     }; 

     UILabel lbl; 

     public StackOverflowModel (UILabel lbl) 
     { 
      this.lbl = lbl; 
     } 

     public override nint GetComponentCount (UIPickerView v) 
     { 
      return 3; 
     } 

     public override nint GetRowsInComponent (UIPickerView pickerView, nint component) 
     { 
      return names.Length; 
     } 

     public override string GetTitle (UIPickerView picker, nint row, nint component) 
     { 
      switch (component) { 
      case 0: 
       return names [row]; 
      case 1: 
       return row.ToString(); 
      case 2: 
       return new string ((char)('A' + row), 1); 
      default: 
       throw new NotImplementedException(); 
      } 
     } 

     public override void Selected (UIPickerView picker, nint row, nint component) 
     { 
      lbl.Text = String.Format ("{0} : {1} : {2}", 
       names [picker.SelectedRowInComponent (0)], 
       picker.SelectedRowInComponent (1), 
       picker.SelectedRowInComponent (2)); 
     } 

     public override nfloat GetComponentWidth (UIPickerView picker, nint component) 
     { 
      if (component == 0) 
       return 220f; 
      else 
       return 30f; 
     } 
    } 
} 
+0

@ सुशी हैंगओवर: आपके नमूना कोड के लिए धन्यवाद। मेरे पास 1 प्रश्न है। मान लीजिए कि मेरे पास यह परिदृश्य है: सबसे पहले, जब मैं बटन पर क्लिक करता हूं, तो मैं गतिशील रूप से एक पिकर पॉप अप करना चाहता हूं, और फिर उपयोगकर्ता को पिकर से एक मान चुनने दें और फिर पिकर से मूल्य चुनने के बाद उस पिकर विजेट को बंद कर दें। क्या आपके पास उस परिदृश्य के लिए कोई नमूना कोड है? – Thanh

+0

@ सुशी हैंगओवर: मैंने अभी अपने तकनीकी मुद्दे के लिए एक नया प्रश्न बनाया है जिसका मैंने ऊपर अपनी पिछली टिप्पणी में उल्लेख किया था। यदि आपके पास कुछ खाली समय है, तो कृपया इस प्रश्न पर एक नज़र डालें: http://stackoverflow.com/questions/39887140/how-to- गतिशील-pop-up-and-hide-uipickerview-in-ios-xamarin- सी-गेम – Thanh

+0

कोड की इस पंक्ति में "चयनित एलबीएल" क्या है: slotMachineView.Model = new StackOverflowModel (selectLbl); ViewController क्लास –

संबंधित मुद्दे