想学用C#开发iphone 的就加入 QQ群:178290571 ,让我们共同进步吧!
C# MonoTouch for iphone 开发blog http://blog.csdn.net/ssihc0/
MonoDevelop 版本:2.8.0
MonoTouch 版本:4.2.2
UISegmentedControl是一个按钮分组控件,每个分段都作为独立的按钮起作用。每个分段可以显示文本或图像。但不能同时显示两者。如果没有指定分段的宽度,那么基于分段总数量进行平分宽度。
下面是UISegmentedControl常用的属性:
ControlStyle 使用UISegmentedControl枚举选择 Plain,Bordered,Bar,Bezeled 其中的一种样式。
NumberOfSegments 只读属性。表示多少个分段数量。
下面是方法和属性:
新建一个工程名为SegmentedControl 打开SegmentedControlViewController
添加下面代码:
public partial class SegmentedControlViewController : UIViewController { private UISegmentedControl segmentedControl; public SegmentedControlViewController (string nibName, NSBundle bundle) : base (nibName, bundle) { } public override void DidReceiveMemoryWarning () { // Releases the view if it doesn't have a superview. base.DidReceiveMemoryWarning (); // Release any cached data, images, etc that aren't in use. } public override void ViewDidLoad () { base.ViewDidLoad (); segmentedControl= new UISegmentedControl(new System.Drawing.RectangleF(30f,35f,260f,45f)); segmentedControl.InsertSegment("First",1,false); segmentedControl.InsertSegment("Second",2,false); segmentedControl.InsertSegment("Third",3,false); segmentedControl.SelectedSegment=0; segmentedControl.ControlStyle=UISegmentedControlStyle.Plain; segmentedControl.ValueChanged+= segmentedControl_ValueChanged; var label = new UILabel(new System.Drawing.RectangleF(30f,75f,260f,45f)); label.BackgroundColor=UIColor.Clear; label.Tag=10; this.View.AddSubview(segmentedControl); this.View.AddSubview(label); //any additional setup after loading the view, typically from a nib. } private void segmentedControl_ValueChanged(object sender ,EventArgs e) { ((UILabel)this.View.ViewWithTag(10)).Text=segmentedControl.SelectedSegment.ToString (); } public override void ViewDidUnload () { base.ViewDidUnload (); // Release any retained subviews of the main view. // e.g. myOutlet = null; } public override bool ShouldAutorotateToInterfaceOrientation (UIInterfaceOrientation toInterfaceOrientation) { // Return true for supported orientations return (toInterfaceOrientation != UIInterfaceOrientation.PortraitUpsideDown); } }
代码分析:
segmentedControl.InsertSegment("First",1,false); 添加 一个text 为First 默认不选中。
label.Tag=10; 设置控制的id。这里的10一般要大于10 。
((UILabel)this.View.ViewWithTag(10)).Text=segmentedControl.SelectedSegment.ToString ();
通过用view的ViewWithTag 方法,根据id的值来找到控件。
运行结果:
源代码:
下载后把gif 改成zip