给button添加边框和圆角

button是我们经常用到的控件,我把它的属性罗列一下:

UIButton *Button = [[UIButton alloc] initWithFrame:CGRectMake(100, 200, 120, 50)];
    NSString *str = @"已认证";
    [Button setTitle:[NSString stringWithFormat:@"%@",str] forState:UIControlStateNormal];
    [Button setTitleEdgeInsets:UIEdgeInsetsMake(0, 5, 0, 0)];
    [Button setImage:[UIImage imageNamed:@"i_ico_class.png"] forState:UIControlStateNormal];
    /* 这样的可以控制边缘插入的位置 可以 让一个按钮的背景里面既有图片也有文字,图片和文字的位置可以随意用此调整 */
//    [Button setImageEdgeInsets:str.length>1?UIEdgeInsetsMake(0, 3, 0, 0):UIEdgeInsetsMake(0, 20, 0, -40)];//上、左、下、右
    [Button setImageEdgeInsets:UIEdgeInsetsMake(0, 3, 0, 0)];//上、左、下、右
    
    Button.backgroundColor = RGB(87, 205, 66);
    Button.clipsToBounds = YES;//裁剪
    Button.titleLabel.font = [UIFont systemFontOfSize:18];//字体大小
    Button.layer.cornerRadius = 25;//圆角半径
    Button.layer.shadowOffset =  CGSizeMake(3, 5);
    Button.layer.shadowOpacity = 0.8;//阴影的透明度
    Button.layer.shadowColor =  RGB(87, 205, 66).CGColor;//阴影的颜色
    Button.layer.borderColor = RGBA(255, 255, 255, 0.4).CGColor;//边框的颜色
    Button.layer.borderWidth = 4;//边框的宽度
    [Button addTarget:self action:@selector(weekChooseAction:) forControlEvents:UIControlEventTouchUpInside];//绑定方法
    [self.view addSubview:Button];

//实现方法

  -(void)weekChooseAction:(id)sender
  {
      [UIView animateWithDuration:2 animations:^{
          self.view.backgroundColor = [UIColor redColor];
      }];
  }

 

转载于:https://www.cnblogs.com/hero11223/p/5175725.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Unity中,我们可以使用自定义脚本来为Button绘制圆角边框。以下是一个简单的示例: 1. 首先,创建一个空的GameObject并将其命名为"RoundButton"。 2. 在RoundButton添加一个Button组件,以便我们能够使用Unity的UI系统。 3. 创建一个新的C#脚本,将其命名为"RoundButtonScript"。 4. 在RoundButtonScript中添加以下代码: ```csharp using UnityEngine; using UnityEngine.UI; [RequireComponent(typeof(Image))] public class RoundButtonScript : MonoBehaviour { public int cornerRadius = 10; // 圆角半径 private Image buttonImage; void Awake() { buttonImage = GetComponent<Image>(); DrawRoundBorder(); } void DrawRoundBorder() { // 获取Button的RectTransform组件 RectTransform rectTransform = GetComponent<RectTransform>(); // 创建一个带圆角的Sprite Sprite borderSprite = CreateRoundBorderSprite(rectTransform.sizeDelta); // 将Sprite设置为Button的背景图像 buttonImage.sprite = borderSprite; } Sprite CreateRoundBorderSprite(Vector2 size) { // 创建一个新的纹理 Texture2D texture = new Texture2D((int)size.x, (int)size.y); // 循环遍历纹理像素,根据圆角半径绘制圆角边框 for (int x = 0; x < size.x; x++) { for (int y = 0; y < size.y; y++) { if (IsInRoundCorner(x, y, size)) { texture.SetPixel(x, y, Color.black); } else { texture.SetPixel(x, y, Color.clear); } } } // 应用修改后的纹理 texture.Apply(); // 创建一个新的Sprite并返回 Sprite sprite = Sprite.Create(texture, new Rect(0, 0, size.x, size.y), new Vector2(0.5f, 0.5f)); return sprite; } bool IsInRoundCorner(int x, int y, Vector2 size) { float centerX = Mathf.Clamp(x, cornerRadius, size.x - cornerRadius); float centerY = Mathf.Clamp(y, cornerRadius, size.y - cornerRadius); float distX = centerX - x; float distY = centerY - y; return (distX * distX) + (distY * distY) <= (cornerRadius * cornerRadius); } } ``` 5. 将RoundButtonScript脚本附加到RoundButton对象上,并在cornerRadius变量中设置所需的圆角半径值。 6. 运行游戏,你会看到Button上绘制了一个具有圆角边框的圆形外形。 这就是使用Unity为Button绘制圆角边框的简单方法。你可以根据需要修改脚本中的参数来获得不同的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值