Xamarin.ios 基本控件
1// 、按钮 UIButton
UIButton btn = new UIButton();
btn.Frame = new RectangleF(,,,); //按钮位置一件宽高
btn.SetTitle("Button",UIControlState.Normal); //显示的文字
btn.SetTitleColor(UIColor.Black,UIControlState.Normal);//文字的颜色
btn.TouchUpInside += this.SetBackGroudColor; //按钮 触摸事件
this.View.AddSubview(btn); //添加到当前视图 //、图像视图 UIImageView
UIImageView img=new UIImageView();
img.Frame = new RectangleF(,,,); //设置位置大小
img.ContentMode = UIViewContentMode.ScaleAspectFit; //设置图像视图模式
img.Image = UIImage.FromFile("img.jpg"); //设置图像
img.Transform = CGAffineTransform.MakeRotation();//图像旋转正数顺时针旋转,负数逆时针旋转
img.Transform = CGAffineTransform.MakeScale(-,); //图像缩放
this.View.AddSubview(img); //添加到当前视图 //、label控件 UILabel
UILabel lbl1 = new UILabel();
lbl1.Frame = new RectangleF(,,,);
lbl1.Text = "UILabel";
lbl1.Lines = ; //显示行数 配合 label高度 使用
lbl1.LineBreakMode = UILineBreakMode.MiddleTruncation; //内容显示样式
lbl1.Hidden = true; //是否显示
this.View.AddSubview(lbl1); //、输入框 UITextField
UITextField t1 = new UITextField();
t1.BorderStyle = UITextBorderStyle.RoundedRect;
t1.Frame = new RectangleF(,,,);
t1.Placeholder = "账号";
// 限制输入字符长度
t1.ShouldChangeCharacters = (textField, range, replacementString) => {
if (range.Location < )
return true;
else
return false;
};
this.View.AddSubview(t1);
UITextField t2 = new UITextField();
t2.BorderStyle = UITextBorderStyle.RoundedRect;//边框样式
t2.Frame = new RectangleF(, , , );
t2.Placeholder = "密码";
t2.SecureTextEntry = true; //隐藏文本
this.View.AddSubview(t2); UITextView text = new UITextView();
text.Frame = new RectangleF(, , , ); this.View.AddSubview(text);
//、UITextView 实现功能:点击完成按钮隐藏键盘,并且把text的Text值赋值给text1控件,并监控 text控件的状态(开始输入,结束输入,输入中)
UITextView text1 = new UITextView();
text1.Frame = new RectangleF(, , , );
text1.Editable = false;
this.View.AddSubview(text1);
text1.Hidden = true;
UIButton btn = new UIButton();
btn.Frame = new RectangleF(,,,);
btn.SetTitle("完成", UIControlState.Normal);
btn.SetTitleColor(UIColor.Red,UIControlState.Normal);
this.View.AddSubview(btn);
btn.TouchUpInside += (sender, e) => {
text.ResignFirstResponder();
text1.Hidden=false;
text1.Text = text.Text; };
text.Delegate = new MyDelegate(); }
private class MyDelegate : UITextViewDelegate
{
public override void EditingEnded(UITextView textView)
{
Console.WriteLine("Edit end");
}
public override void EditingStarted(UITextView textView)
{
Console.WriteLine("Edit start");
}
public override void Changed(UITextView textView)
{
Console.WriteLine("Edit ");
}
}
//、 输入框键盘 样式类型 设置
UITextField fied = new UITextField();
fied.Frame = new RectangleF(, , , );
fied.BorderStyle = UITextBorderStyle.Line;
this.View.AddSubview(fied);
fied.KeyboardType = UIKeyboardType.Url;//设置键盘类型
fied.KeyboardAppearance = UIKeyboardAppearance.Dark;// 设置键盘外观
fied.ReturnKeyType = UIReturnKeyType.Next;//设置键盘的Return键 96// 、显示键盘 时改变输入框的位置
UITextField fied = new UITextField();
private NSObject kbdWillShow, kbdDidHide; public override void ViewDidLoad()
{
base.ViewDidLoad();
fied.Frame = new RectangleF(, , , );
fied.BorderStyle = UITextBorderStyle.RoundedRect;
this.View.AddSubview(fied);
//显示键盘前 (事件)
kbdWillShow = UIKeyboard.Notifications.ObserveWillShow((s, e) => {
RectangleF kbdRounds = (RectangleF)e.FrameEnd;
RectangleF textFrame = (RectangleF)fied.Frame;
textFrame.Y -= kbdRounds.Height;
fied.Frame = textFrame;
});
//隐藏键盘后 (事件)
kbdDidHide = UIKeyboard.Notifications.ObserveDidHide((s, e) =>
{
RectangleF kbdRounds = (RectangleF)e.FrameEnd;
RectangleF textFrame = (RectangleF)fied.Frame;
textFrame.Y += kbdRounds.Height;
fied.Frame = textFrame;
});
//键盘上的return键 隐藏键盘 (事件)
fied.ShouldReturn=delegate(UITextField textField) {
return textField.ResignFirstResponder();
};
}
//、 为输入框键盘 添加工具栏
UITextField fied = new UITextField();
fied.Frame = new RectangleF(, , , );
fied.BorderStyle = UITextBorderStyle.RoundedRect;//设置输入框边框
this.View.AddSubview(fied);
fied.KeyboardType = UIKeyboardType.EmailAddress;//设置键盘类型
//设施工具栏
UIToolbar bar = new UIToolbar();//实例化工具栏
bar.SizeToFit();
bar.BackgroundColor = UIColor.DarkGray;//设置背景
//实例化 工具栏 按钮
UIBarButtonItem item = new UIBarButtonItem("完成", UIBarButtonItemStyle.Done, (s, e) =>
{
//隐藏键盘
fied.ResignFirstResponder();
});
//为工具栏设置条目
bar.SetItems(new UIBarButtonItem[]{ item},true);
//为输入框 键盘添加工具栏
fied.InputAccessoryView = bar; //、文本视图菜单 退出按钮
public override void ViewDidLoad()
{
tf.Frame = new RectangleF(,,,);
this.View.AddSubview(tf);
UIMenuItem item = new UIMenuItem("退出", new Selector("hide"));//添加菜单按钮 UIMenuController c = UIMenuController.SharedMenuController;
c.MenuItems = new UIMenuItem[] { item }; }
UITextView tf = new UITextView();
[Export("hide")]
public void hide() {
//退出键盘
tf.ResignFirstResponder();
} //、触摸背景隐藏键盘
public override void ViewDidLoad()
{
tf.Frame = new RectangleF(,,,);
tf.BorderStyle = UITextBorderStyle.RoundedRect;
this.View.AddSubview(tf); }
/// <summary>
///重写 ViewController 方法 TouchesBegan
/// </summary>
/// <param name="touches">Touches.</param>
/// <param name="evt">Evt.</param>
public override void TouchesBegan(NSSet touches, UIEvent evt)
{
tf.ResignFirstResponder();
}
182// 、进度条控件 UIProgressView 先在添加一个lable lbl 和一个button sta
public override void ViewDidLoad()
{
//按钮的触摸事件
sta.TouchUpInside+=delegate {
sta.Enabled = false;
pv.Progress = 0f;
//创建一个新的任务 用来计算 进度条的值 并更新视图
Task.Factory.StartNew(this.Start);
};
/创建进度条 并添加到视图
pv = new UIProgressView(new RectangleF(60f,200f,200f,50f));
pv.Progress = 0f;
f = 1f / 10f;
this.View.AddSubview(pv);
}
UIProgressView pv;
float f = 0f;
public void Start() {
float p = 0f;
while (p<1f) {
Thread.Sleep();
//调用主线程 修改视图
this.InvokeOnMainThread(delegate {
pv.Progress += this.f;
p = pv.Progress;
lbl.Text = Math.Round(pv.Progress, ).ToString();
if (p >= 1f)
{
lbl.Text = "加载完成!";
sta.Enabled = true;
}
});
} }
218// 、滚动视图
().
UIImageView img;
UIScrollView scr;
public override void ViewDidLoad()
{
base.ViewDidLoad();
img = new UIImageView(UIImage.FromFile("1.png"));
scr = new UIScrollView();
scr.Frame = new RectangleF(,,,);
scr.ContentSize = img.Image.Size; //滚动范围
scr.ContentOffset = new PointF(200f,50f); //目前滚动位置
scr.PagingEnabled = true; //可以整页翻动
scr.MinimumZoomScale=0.25f; //缩放最小比例
scr.MaximumZoomScale=2f; //放大的最大比例
//获取要缩放的图像视图
scr.ViewForZoomingInScrollView=delegate (UIScrollView scrll){
return this.img;
};
scr.ZoomScale = 1f; //设置变化比例
scr.IndicatorStyle = UIScrollViewIndicatorStyle.Black; //滚动指示器的风格设置
scr.AddSubview(img);
this.View.AddSubview(scr);
}
().
UIScrollView scr = new UIScrollView();
scr.Frame = new RectangleF(,,,);
scr.ContentSize = new SizeF(,);
this.View.AddSubview(scr);
//滚动视图开始时调用
scr.Scrolled+=delegate {
Console.WriteLine("Start rolling");
};
//滚动视图结束时调用
scr.DecelerationEnded+=delegate {
Console.WriteLine("Start End");
};
float y = ;
for (float i = ; i < ; i++) {
UILabel lab = new UILabel();
lab.Frame = new RectangleF(,y,,);
lab.BackgroundColor = UIColor.Cyan;
lab.Text = String.Format("{0}",i);
scr.AddSubview(lab);
y += ; }
265// 、页面控件
UIImageView img1;
UIImageView img2;
UIImageView img3;
UIScrollView scr;
UIPageControl pagc;
public override void ViewDidLoad()
{
base.ViewDidLoad();
//添加滚动视图
scr = new UIScrollView();
scr.Frame = new RectangleF(,,,);
//滚动视图结束滚动时调用
scr.DecelerationEnded += this.scr_DecelerationEnded;
//添加页面
pagc = new UIPageControl();
pagc.Frame = new RectangleF(,,,);
pagc.Pages = ; //设置页面数值 及页面小白点
//当页面数值发生改变时调用
pagc.ValueChanged += this.pagc_ValueChanged;
//滚动视图的滚动事件
scr.Scrolled+=delegate {
Console.WriteLine("Scolled!");
};
scr.PagingEnabled = true;
RectangleF rf = (RectangleF)scr.Frame;
scr.ContentSize = new SizeF(rf.Width*,rf.Height);
//添加图像视图
img1 = new UIImageView();
img1.ContentMode = UIViewContentMode.ScaleAspectFit;
img1.Image = UIImage.FromFile("1.jpg");
rf.X += (float)this.scr.Frame.Width;
img2 = new UIImageView();
img2.ContentMode = UIViewContentMode.ScaleAspectFit;
img2.Image = UIImage.FromFile("2.jpg");
rf.X += (float)this.scr.Frame.Width;
img3 = new UIImageView();
img3.ContentMode = UIViewContentMode.ScaleAspectFit;
img3.Image = UIImage.FromFile("3.jpg");
rf.X += (float)this.scr.Frame.Width; scr.AddSubview(img1);
scr.AddSubview(img2);
scr.AddSubview(img3);
this.View.AddSubview(scr);
this.View.AddSubview(pagc); } public void scr_DecelerationEnded(object sender,EventArgs e) {
float x1 = (float)this.img1.Frame.X;//获取图像img1 的x位置
float x2 = (float)this.img2.Frame.X;//获取图像img2的x位置
float x = (float)this.scr.ContentOffset.X;//获取视图对象scrolview scr 目前滚动的x位置 //判断x是否和x1相等
if (x == x1)
{
this.pagc.CurrentPage = ; }
else if (x == x2)
{
this.pagc.CurrentPage = ; }
else
{
this.pagc.CurrentPage = ; } }
public void pagc_ValueChanged(object sender, EventArgs e)
{
PointF pf = (PointF)this.scr.ContentOffset;
switch (this.pagc.CurrentPage) {
case :
pf.X = (float)this.img1.Frame.X;
this.scr.SetContentOffset(pf,true);
break;
case :
pf.X = (float)this.img2.Frame.X;
this.scr.SetContentOffset(pf, true);
break;
case :
pf.X = (float)this.img3.Frame.X;
this.scr.SetContentOffset(pf, true);
break;
default:
break;
}
}
357// 、警告视图
UIAlertView a = new UIAlertView();
a.Title = "提示";
a.Message = "电量不足";
a.AddButton("确定");
a.Show();
UIButton btn = new UIButton();
btn.Frame = new RectangleF(150,310,80,30); //按钮位置一件宽高
btn.SetTitle("Button",UIControlState.Normal); //显示的文字
btn.SetTitleColor(UIColor.Black,UIControlState.Normal);//文字的颜色
btn.TouchUpInside += this.SetBackGroudColor; //按钮 触摸事件
this.View.AddSubview(btn); //添加到当前视图
2、图像视图 UIImageView
UIImageView img=new UIImageView();
img.Frame = new RectangleF(0,0,375,667); //设置位置大小
img.ContentMode = UIViewContentMode.ScaleAspectFit; //设置图像视图模式
img.Image = UIImage.FromFile("img.jpg"); //设置图像
img.Transform = CGAffineTransform.MakeRotation(20);//图像旋转正数顺时针旋转,负数逆时针旋转
img.Transform = CGAffineTransform.MakeScale(-2,2); //图像缩放
this.View.AddSubview(img); //添加到当前视图
3、label控件 UILabel
lbl1.Frame = new RectangleF(2,410,155,28);
lbl1.Text = "UILabel";
lbl1.Lines = 3; //显示行数 配合 label高度 使用
lbl1.LineBreakMode = UILineBreakMode.MiddleTruncation; //内容显示样式
lbl1.Hidden = true; //是否显示
this.View.AddSubview(lbl1);
4、输入框 UITextField
UITextField t1 = new UITextField();
t1.BorderStyle = UITextBorderStyle.RoundedRect;
t1.Frame = new RectangleF(50,250,300,30);
t1.Placeholder = "账号";
// 限制输入字符长度
t1.ShouldChangeCharacters = (textField, range, replacementString) => {
if (range.Location < 10)
return true;
else
return false;
};
this.View.AddSubview(t1);
UITextField t2 = new UITextField();
t2.Frame = new RectangleF(50, 300, 300, 30);
t2.Placeholder = "密码";
t2.SecureTextEntry = true; //隐藏文本
this.View.AddSubview(t2);
UITextView text = new UITextView();
text.Frame = new RectangleF(9, 90, 302, 180);
this.View.AddSubview(text);
5、UITextView 实现功能:点击完成按钮隐藏键盘,并且把text的Text值赋值给text1控件,并监控 text控件的状态(开始输入,结束输入,输入中)
UITextView text1 = new UITextView();
text1.Frame = new RectangleF(9, 330, 302, 180);
text1.Editable = false;
this.View.AddSubview(text1);
text1.Hidden = true;
UIButton btn = new UIButton();
btn.Frame = new RectangleF(137,56,46,30);
btn.SetTitle("完成", UIControlState.Normal);
btn.SetTitleColor(UIColor.Red,UIControlState.Normal);
this.View.AddSubview(btn);
btn.TouchUpInside += (sender, e) => {
text.ResignFirstResponder();
text1.Hidden=false;
text1.Text = text.Text;
};
text.Delegate = new MyDelegate();
}
private class MyDelegate : UITextViewDelegate
{
public override void EditingEnded(UITextView textView)
{
Console.WriteLine("Edit end");
}
public override void EditingStarted(UITextView textView)
{
Console.WriteLine("Edit start");
}
public override void Changed(UITextView textView)
{
Console.WriteLine("Edit ");
}
}
6、 输入框键盘 样式类型 设置
UITextField fied = new UITextField();
fied.Frame = new RectangleF(50, 100, 300, 30);
fied.BorderStyle = UITextBorderStyle.Line;
this.View.AddSubview(fied);
fied.KeyboardType = UIKeyboardType.Url;//设置键盘类型
fied.KeyboardAppearance = UIKeyboardAppearance.Dark;// 设置键盘外观
fied.ReturnKeyType = UIReturnKeyType.Next;//设置键盘的Return键
7、显示键盘 时改变输入框的位置
UITextField fied = new UITextField();
private NSObject kbdWillShow, kbdDidHide;
public override void ViewDidLoad()
{
base.ViewDidLoad();
fied.Frame = new RectangleF(10, 500, 300, 30);
fied.BorderStyle = UITextBorderStyle.RoundedRect;
this.View.AddSubview(fied);
//显示键盘前 (事件)
kbdWillShow = UIKeyboard.Notifications.ObserveWillShow((s, e) => {
RectangleF kbdRounds = (RectangleF)e.FrameEnd;
RectangleF textFrame = (RectangleF)fied.Frame;
textFrame.Y -= kbdRounds.Height;
fied.Frame = textFrame;
});
//隐藏键盘后 (事件)
kbdDidHide = UIKeyboard.Notifications.ObserveDidHide((s, e) =>
{
RectangleF kbdRounds = (RectangleF)e.FrameEnd;
RectangleF textFrame = (RectangleF)fied.Frame;
textFrame.Y += kbdRounds.Height;
fied.Frame = textFrame;
});
//键盘上的return键 隐藏键盘 (事件)
fied.ShouldReturn=delegate(UITextField textField) {
return textField.ResignFirstResponder();
};
}
8、 为输入框键盘 添加工具栏
UITextField fied = new UITextField();
fied.Frame = new RectangleF(10, 200, 300, 30);
fied.BorderStyle = UITextBorderStyle.RoundedRect;//设置输入框边框
this.View.AddSubview(fied);
fied.KeyboardType = UIKeyboardType.EmailAddress;//设置键盘类型
//设施工具栏
UIToolbar bar = new UIToolbar();//实例化工具栏
bar.SizeToFit();
bar.BackgroundColor = UIColor.DarkGray;//设置背景
//实例化 工具栏 按钮
UIBarButtonItem item = new UIBarButtonItem("完成", UIBarButtonItemStyle.Done, (s, e) =>
{
//隐藏键盘
fied.ResignFirstResponder();
});
//为工具栏设置条目
bar.SetItems(new UIBarButtonItem[]{ item},true);
//为输入框 键盘添加工具栏
fied.InputAccessoryView = bar;
9、文本视图菜单 退出按钮
public override void ViewDidLoad()
{
tf.Frame = new RectangleF(20,10,300,100);
this.View.AddSubview(tf);
UIMenuItem item = new UIMenuItem("退出", new Selector("hide"));//添加菜单按钮
UIMenuController c = UIMenuController.SharedMenuController;
c.MenuItems = new UIMenuItem[] { item };
}
UITextView tf = new UITextView();
[Export("hide")]
public void hide() {
//退出键盘
tf.ResignFirstResponder();
}
10、触摸背景隐藏键盘
public override void ViewDidLoad()
{
tf.Frame = new RectangleF(10,50,300,30);
tf.BorderStyle = UITextBorderStyle.RoundedRect;
this.View.AddSubview(tf);
}
/// <summary>
///重写 ViewController 方法 TouchesBegan
/// </summary>
/// <param name="touches">Touches.</param>
/// <param name="evt">Evt.</param>
public override void TouchesBegan(NSSet touches, UIEvent evt)
{
tf.ResignFirstResponder();
}
11、进度条控件 UIProgressView 先在添加一个lable lbl 和一个button sta
public override void ViewDidLoad()
{
//按钮的触摸事件
sta.TouchUpInside+=delegate {
sta.Enabled = false;
pv.Progress = 0f;
//创建一个新的任务 用来计算 进度条的值 并更新视图
Task.Factory.StartNew(this.Start);
};
/创建进度条 并添加到视图
pv = new UIProgressView(new RectangleF(60f,200f,200f,50f));
pv.Progress = 0f;
f = 1f / 10f;
this.View.AddSubview(pv);
}
UIProgressView pv;
float f = 0f;
public void Start() {
float p = 0f;
while (p<1f) {
Thread.Sleep(1000);
//调用主线程 修改视图
this.InvokeOnMainThread(delegate {
pv.Progress += this.f;
p = pv.Progress;
lbl.Text = Math.Round(pv.Progress, 2).ToString();
if (p >= 1f)
{
lbl.Text = "加载完成!";
sta.Enabled = true;
}
});
}
}
12、滚动视图
(1).
UIImageView img;
UIScrollView scr;
public override void ViewDidLoad()
{
base.ViewDidLoad();
img = new UIImageView(UIImage.FromFile("1.png"));
scr = new UIScrollView();
scr.Frame = new RectangleF(0,0,320,568);
scr.ContentSize = img.Image.Size; //滚动范围
scr.ContentOffset = new PointF(200f,50f); //目前滚动位置
scr.PagingEnabled = true; //可以整页翻动
scr.MinimumZoomScale=0.25f; //缩放最小比例
scr.MaximumZoomScale=2f; //放大的最大比例
//获取要缩放的图像视图
scr.ViewForZoomingInScrollView=delegate (UIScrollView scrll){
return this.img;
};
scr.ZoomScale = 1f; //设置变化比例
scr.IndicatorStyle = UIScrollViewIndicatorStyle.Black; //滚动指示器的风格设置
scr.AddSubview(img);
this.View.AddSubview(scr);
}
(2).
UIScrollView scr = new UIScrollView();
scr.Frame = new RectangleF(0,0,325,568);
scr.ContentSize = new SizeF(320,2000);
this.View.AddSubview(scr);
//滚动视图开始时调用
scr.Scrolled+=delegate {
Console.WriteLine("Start rolling");
};
//滚动视图结束时调用
scr.DecelerationEnded+=delegate {
Console.WriteLine("Start End");
};
float y = 10;
for (float i = 1; i < 21; i++) {
UILabel lab = new UILabel();
lab.Frame = new RectangleF(0,y,320,50);
lab.BackgroundColor = UIColor.Cyan;
lab.Text = String.Format("{0}",i);
scr.AddSubview(lab);
y += 100;
13、页面控件
UIImageView img1;
UIImageView img2;
UIImageView img3;
UIScrollView scr;
UIPageControl pagc;
public override void ViewDidLoad()
{
base.ViewDidLoad();
//添加滚动视图
scr = new UIScrollView();
scr.Frame = new RectangleF(0,0,320,495);
//滚动视图结束滚动时调用
scr.DecelerationEnded += this.scr_DecelerationEnded;
//添加页面
pagc = new UIPageControl();
pagc.Frame = new RectangleF(0,540,320,37);
pagc.Pages = 3; //设置页面数值 及页面小白点
//当页面数值发生改变时调用
pagc.ValueChanged += this.pagc_ValueChanged;
//滚动视图的滚动事件
scr.Scrolled+=delegate {
Console.WriteLine("Scolled!");
};
scr.PagingEnabled = true;
RectangleF rf = (RectangleF)scr.Frame;
scr.ContentSize = new SizeF(rf.Width*3,rf.Height);
//添加图像视图
img1 = new UIImageView();
img1.ContentMode = UIViewContentMode.ScaleAspectFit;
img1.Image = UIImage.FromFile("1.jpg");
rf.X += (float)this.scr.Frame.Width;
img2 = new UIImageView();
img2.ContentMode = UIViewContentMode.ScaleAspectFit;
img2.Image = UIImage.FromFile("2.jpg");
rf.X += (float)this.scr.Frame.Width;
img3 = new UIImageView();
img3.ContentMode = UIViewContentMode.ScaleAspectFit;
img3.Image = UIImage.FromFile("3.jpg");
rf.X += (float)this.scr.Frame.Width;
scr.AddSubview(img1);
scr.AddSubview(img2);
scr.AddSubview(img3);
this.View.AddSubview(scr);
this.View.AddSubview(pagc);
}
public void scr_DecelerationEnded(object sender,EventArgs e) {
float x1 = (float)this.img1.Frame.X;//获取图像img1 的x位置
float x2 = (float)this.img2.Frame.X;//获取图像img2的x位置
float x = (float)this.scr.ContentOffset.X;//获取视图对象scrolview scr 目前滚动的x位置
//判断x是否和x1相等
if (x == x1)
{
this.pagc.CurrentPage = 0;
}
else if (x == x2)
{
this.pagc.CurrentPage = 1;
}
else
{
this.pagc.CurrentPage = 2;
}
}
public void pagc_ValueChanged(object sender, EventArgs e)
{
PointF pf = (PointF)this.scr.ContentOffset;
switch (this.pagc.CurrentPage) {
case 0:
pf.X = (float)this.img1.Frame.X;
this.scr.SetContentOffset(pf,true);
break;
case 1:
pf.X = (float)this.img2.Frame.X;
this.scr.SetContentOffset(pf, true);
break;
case 2:
pf.X = (float)this.img3.Frame.X;
this.scr.SetContentOffset(pf, true);
break;
default:
break;
}
}
14、警告视图
UIAlertView a = new UIAlertView();
a.Title = "提示";
a.Message = "电量不足";
a.AddButton("确定");
a.Show();
Xamarin.ios 基本控件的更多相关文章
- Xamarin Studio在Mac环境下的配置和Xamarin.iOS常用控件的示例
看过好多帖子都是Win环境装XS,Mac只是个模拟器,讲解在Mac环境下如何配置Xamarin Studio很少,也是一点点找资料,东拼西凑才把Xamarin Studio装在Mac上跑起来,如下: ...
- JS调用Android、Ios原生控件
在上一篇博客中已经和大家聊了,关于JS与Android.Ios原生控件之间相互通信的详细代码实现,今天我们一起聊一下JS调用Android.Ios通信的相同点和不同点,以便帮助我们在进行混合式开发时, ...
- 初识IOS,Label控件的应用。
初识IOS,Label控件的应用. // // ViewController.m // Gua.test // // Created by 郭美男 on 16/5/31. // Copyright © ...
- IOS—UITextFiled控件详解
IOS—UITextFiled控件详解 //初始化textfield并设置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGR ...
- [iOS基础控件 - 5.5] 代理设计模式 (基于”APP列表"练习)
A.概述 在"[iOS基础控件 - 4.4] APP列表 进一步封装,初见MVC模式”上进一步改进,给“下载”按钮加上效果.功能 1.按钮点击后,显示为“已下载”,并且不 ...
- android 仿ios开关控件
ios一些控件还是挺美丽的,可是对android程序猿来说可能比較苦逼,由于ios一些看起来简单的效果对android来说可能就没那么简单了,可是没办法非常多产品都是拿ios的一些控件叫android ...
- Xamarin.Forms单元控件Cell
Xamarin.Forms单元控件Cell 单元控件Cell是Xamarin.Forms为ListView和TableView专门定制的一类项目元素.它包括5个控件,分别为文本框单元EntryCe ...
- Xamarin.Forms XAML控件的公共属性
Xamarin.Forms XAML控件的公共属性 Xamarin.Forms XAML控件有很多.通过官网API,可以查看每个控件的属性.但是官网只给出了控件的特有属性,而公共属性没有列出.所以 ...
- 79.iOS 设备的UI规范和iOS各控件默认高度
iOS设备的UI 规范 iPhone界面尺寸 iPhone图标尺寸 iPad的设计尺寸 iPad图标尺寸 iPhone设备尺寸分辨率比例 iPhone各设备 launch image iOS 各种控件 ...
随机推荐
- jQuery为开发插件提拱了两个方法:jQuery.fn.extend(); jQuery.extend();
jQuery为开发插件提拱了两个方法,分别是: jQuery.fn.extend(); jQuery.extend(); jQuery.fn jQuery.fn = jQuery.prototype ...
- JQ实现判断iPhone、Android设备
最近做了一版微信宣传页,通过JQ来判断设备,并进行下载 微信内置浏览器对下载链接进行了屏蔽,所以先进行判断,如果是微信内置浏览器,则跳转应用宝链接,如果不是,则判断是iPhone/Adroid/PC ...
- Atitit.数据检索与网络爬虫与数据采集的原理概论
Atitit.数据检索与网络爬虫与数据采集的原理概论 1. 信息检索1 1.1. <信息检索导论>((美)曼宁...)[简介_书评_在线阅读] - dangdang.html1 1.2. ...
- 记处理线上记录垃圾日志 The view 'Error' or its master was not found
最近监控线上日志,网站是ASP.NET MVC 开发的,发现不少错误日志都记录同样的内容: The view 'Error' or its master was not found or no vie ...
- ASP.NET MVC 3 技术(九) 301永久重定向不带www域名到带www的域名
在 .net 4 中实现永久重定向非常容易,可以参考ASP.NET MVC3 技术(四) 永久重定向方法.今天主要说明下怎么在 asp.net mvc 3 实现从带www的域名永久重定向到不带www的 ...
- SQL Server 2012 新特性:其他
安装期间的设置 为了强化角色分离,不自动在 sysadmin 固定服务器角色中设置 BUILTIN\administrators 和 Local System (NT AUTHORITY\SYST ...
- 分布式一致性算法--Raft
前面一篇文章讲了Paxos协议,这篇文章讲它的姊妹篇Raft协议,相对于Paxos协议,Raft协议更为简单,也更容易工程实现.有关Raft协议和工程实现可以参考这个链接https://raft.gi ...
- Yii2 脚本手动执行可以,计划任务执行不成功
用Yii2的console写了个脚本,在命令行执行都OK. 放到cron里面也按时去执行了,但就是执行的效果不对,console脚本执行结果不对. 查看之后的是由于yii脚本的php路径问题(跟目录下 ...
- php-cgi not found
错误描述 用PHPStorm运行PHP脚本的时候浏览器提示"502 Bad Gateway",PHPStorm提示"php-cgi not found". 系统 ...
- Select into 的特点
使用 Select * into NewTable From OldTable 来生成新表的技能已经使用得好熟练了~但是有些东西还是需要注意一下.下面我就来分享几个栗子 使用select into ...