xamarin.from上可以使用本身的button实现圆角带图标的按钮,但是没有半圆角的按钮实现,需要自己使用Renderer重新写过来重写一个button。

下面是一个重写的带边框的方式,代码如下:

 using UIKit;
using Xamarin.Forms.Platform.iOS;
using Xamarin.Forms;
using CoreAnimation;
using System.ComponentModel; [assembly: ExportRenderer(typeof(Test.Renderers.MyRadiusButton), typeof(Test.iOS.Renderers.MyRadiusButton))]
namespace Test.iOS.Renderers
{
public class MyRadiusButton : ButtonRenderer
{
bool btnStatus = true;
bool radiusLeft = true;
protected override void OnElementChanged(ElementChangedEventArgs<Button> e)
{
base.OnElementChanged(e);
Test.Renderers.MyRadiusButton view = Element as Test.Renderers.MyRadiusButton;
radiusLeft = view.RadiusLeft;
if (e.OldElement == null)
{
UIBezierPath maskPath; double widthLength = / - ;
maskPath = UIBezierPath.FromRoundedRect(new CoreGraphics.CGRect(, , widthLength, ), UIRectCorner.TopLeft | UIRectCorner.BottomLeft, new CoreGraphics.CGSize(, )); CAShapeLayer maskLayer = new CAShapeLayer();
//maskLayer.Frame = new CoreGraphics.CGRect(0, 0, widthLength, 35);
maskLayer.Path = maskPath.CGPath;
maskLayer.StrokeColor = new CoreGraphics.CGColor(, , );//边框颜色 CAShapeLayer borderLayer = new CAShapeLayer();
borderLayer.Path = maskPath.CGPath;
borderLayer.Frame = new CoreGraphics.CGRect(, , widthLength, );
borderLayer.FillColor = new CoreGraphics.CGColor(, , , 0f);
borderLayer.StrokeColor = new CoreGraphics.CGColor(0.23f, 0.72f, 0.47f, 1.0f);
borderLayer.LineWidth = ; Control.Layer.Mask = maskLayer;
Control.Layer.AddSublayer(borderLayer);
Control.Layer.MasksToBounds = true;
Control.SetTitleColor(UIColor.FromRGB(, , ), UIControlState.Normal);
Control.BackgroundColor = UIColor.FromRGB(, , ); view.Clicked += (sender, even) =>
{
if (!view.BtnSelected)
{
if (btnStatus)
{
Control.SetTitleColor(UIColor.FromRGB(, , ), UIControlState.Normal);
Control.BackgroundColor = UIColor.FromRGB(, , );
btnStatus = !btnStatus;
}
else
{
Control.SetTitleColor(UIColor.FromRGB(, , ), UIControlState.Normal);
Control.BackgroundColor = UIColor.FromRGB(, , );
btnStatus = !btnStatus;
}
view.BtnClickAction?.Invoke();
}
}; }
}
}
}

xamarin.ios 半圆角按钮Readerer的更多相关文章

  1. xamarin UWP自定义圆角按钮

    uwp自带的button本身不支持圆角属性,所以要通过自定义控件实现. 通过设置Button的Background=“{x:Null}”设置为Null使背景为空,再设置Button.Content中的 ...

  2. Xamarin iOS教程之使用按钮接接收用户输入

    Xamarin iOS教程之使用按钮接接收用户输入 Xamarin iOS使用按钮接接收用户输入 按钮是用户交互的最基础控件.即使是在iPhone或者iPad中,用户使用最多操作也是通过触摸实现点击. ...

  3. iOS中创建自定义的圆角按钮

    iOS中很多时候都需要用到指定风格的圆角按钮,尽管UIButton提供了一个方式创建圆角按钮: + (id)buttonWithType:(UIButtonType)buttonType;//指定bu ...

  4. iOS控件圆角与半圆角

    开发过程中难免用到圆角以及恶心的半圆角,看代码 半圆角:这是把左边的两个角切成了圆角 UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoun ...

  5. Xamarin Studio在Mac环境下的配置和Xamarin.iOS常用控件的示例

    看过好多帖子都是Win环境装XS,Mac只是个模拟器,讲解在Mac环境下如何配置Xamarin Studio很少,也是一点点找资料,东拼西凑才把Xamarin Studio装在Mac上跑起来,如下: ...

  6. Xamarin.IOS之多视图

    欢迎大家加入以下开源社区 Xamarin-Cn:https://github.com/Xamarin-Cn Mvvmcross-Cn:https://github.com/Mvvmcross-Cn  ...

  7. Xamarin.IOS之快速入门

    欢迎大家加入以下开源社区 Xamarin-Cn:https://github.com/Xamarin-Cn Mvvmcross-Cn:https://github.com/Mvvmcross-Cn  ...

  8. Xamarin iOS编写第一个应用程序创建工程

    Xamarin iOS编写第一个应用程序创建工程 在Xcode以及Xamarin安装好后,就可以在Xamarin Studio中编写程序了.本节将主要讲解在Xamarin Studio中如何进行工程的 ...

  9. iOS Simulator功能介绍关于Xamarin IOS开发

    iOS Simulator功能介绍关于Xamarin IOS开发 iOS Simulator功能介绍 在图1.38所示的运行效果中,所见到的类似于手机的模型就是iOS Simulator.在没有iPh ...

随机推荐

  1. 53、listview、expandableListview如何选中时保持高亮?

    一.listView被选中后保持高亮 70down voteaccepted To hold the color of listview item when you press it, include ...

  2. IOS开发学习笔记029-反选、全选、删除按钮的实现

    还是在上一个程序的基础上进行修改 1.反选按钮 2.全选按钮 3.删除按钮 4.其他代码优化 1.反选按钮 反选的过程就是将_deleteShops数组中得数据清空,然后将Shops中数组添加到_de ...

  3. phpMyAdmin 4.7.x CSRF

    phpMyAdmin 4.7.x CSRF 场景:管理员登陆phpmyadmin之后,我试验了一下,发现只要是登陆session没有失效应该是都可以的, 利用,phpmyadmin可以通过get方式操 ...

  4. [oldboy-django][1初始django]昨日回顾

    1 web框架的本质:socket客户端和服务端通信,socket遵循http协议(短连接,无状态),规定了数据格式(消息头,消息体):传输的数据本质上是字符串 2 django: django安装( ...

  5. jQuery ajax使用$(this).parent()无效解决方法

    div=$(this).parent(); //先获取父级元素 div.remove(); //再删除 $(".delStu").click(function () {       ...

  6. 【bzoj3028】食物 数论+生成函数

    题目描述 明明这次又要出去旅游了,和上次不同的是,他这次要去宇宙探险! 我们暂且不讨论他有多么NC,他又幻想了他应该带一些什么东西.理所当然的,你当然要帮他计算携带N件物品的方案数. 他这次又准备带一 ...

  7. [HDU3480] Division [四边形不等式dp]

    题面: 传送门 思路: 因为集合可以无序选择,所以我们先把输入数据排个序 然后发先可以动归一波 设$dp\left[i\right]\left[j\right]$表示前j个数中分了i个集合,$w\le ...

  8. windows系统——常用命令

    1.cleanmgr: 打开磁盘清理工具2.compmgmt.msc: 计算机管理3.conf: 启动系统配置实用程序4.charmap: 启动字符映射表5.calc: 启动计算器6.chkdsk.e ...

  9. Bzoj 3145 - [Feyat cup 1.5]Str

    bzoj 3145 - [Feyat cup 1.5]Str Description 给你两个长度\(10^5\)级别的串\(S, T\) 求\(S,T\)的最长模糊匹配公共子串 模糊匹配 : 至多一 ...

  10. PHP一维数组和二维数字排序整理

    <?php /** 一维数组排序 sort() - 以升序对数组排序 rsort() - 以降序对数组排序 asort() - 根据值,以升序对关联数组进行排序 ksort() - 根据键,以升 ...