iOS UIButton 带有圆角和背景 bug

2024-05-20

我发现圆形 UIButton 存在一个奇怪的问题。

这是我创建此按钮的代码块。

let roundedButton = UIButton(type: .System)
roundedButton.frame = CGRectMake(100, 100, 100, 100)
roundedButton.backgroundColor = UIColor.blackColor()
roundedButton.layer.borderColor = UIColor.whiteColor().CGColor
roundedButton.layer.borderWidth = 3.0
roundedButton.layer.cornerRadius = roundedButton.frame.size.width/2
roundedButton.layer.masksToBounds = true
self.view.addSubview(roundedButton)

As you can see, there's a UIButton with backgroundColor, border and corner radius. It's fully rounded. But in the output I get the next appearance: rounded button with 1px border

你可以看到按钮外面 1px 的边框,它是它的背景色(黑色)。似乎它的内边框(白色)不是从按钮的边缘开始的。

您知道如何解决这个问题吗?


使用 CAShapeLayer 代替,它还可以提供增强的性能:

    let roundedButton = UIButton(type: .Custom)
    roundedButton.frame = CGRectMake(100, 100, 100, 100)
    let _border = CAShapeLayer()
    _border.path = UIBezierPath(roundedRect: roundedButton.bounds, cornerRadius:roundedButton.frame.size.width/2).CGPath
    _border.frame = roundedButton.bounds
    _border.strokeColor = UIColor.whiteColor().CGColor
    _border.fillColor = UIColor.blackColor().CGColor
    _border.lineWidth = 3.0
    roundedButton.layer.addSublayer(_border)

    self.view.addSubview(roundedButton)

记住不要使用roundedButton的backgroundColor,只使用CAShapeLayer的fillColor。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS UIButton 带有圆角和背景 bug 的相关文章

  • GoogleMaps iOS SDK 1.5 无法加载

    所以我开始研究使用 GoogleMaps iOS SDK 我按照说明进行操作 在控制台中启用适用于 iOS 的 Google Maps SDK 设置 API 密钥并添加捆绑 ID 我使用演示项目 Google Supplies 更新了常量
  • 更改 RealityKit 中 AnchorEntity 的旋转

    我在放置对象 3 秒后将 3d 对象放置到 ARViewController 中 然后我想将对象旋转 90 度 arView scene addAnchor anchorEntity DispatchQueue main asyncAfte
  • 如何在 Xcode 构建完成时设置警报?

    我是一名懒惰的 iOS 开发人员 在一个大型 iOS 项目中工作 我已经应用了许多优化来减少项目构建时间 但每次构建都需要超过 10 12 分钟 我开始构建 有时当构建完成时 我会在桌子上睡着 有没有什么方法可以将任何语音 铃声警报与 xc
  • 从音频流获取元数据

    我想从我正在使用 AVQueuePlayer 播放的 AVPlayerItem 中的流 URL 获取文件名和专辑图像 如果可能 但我不知道如何执行此操作 另外 如果我的流媒体 URL 没有任何元数据 我可以将元数据放入我的流媒体 URL 中
  • 延迟推送通知并检查用户是否启用它

    我开发了一个应用程序 它围绕推送通知构建 仅当用户达到注册过程的某个阶段时 应用程序才会请求通知权限 我已经设法做到了以下几点 该应用程序维护一个NSUserDefaults变量 指示是否需要在启动时注册推送 默认情况 不需要 当注册达到该
  • Swift 错误:可选类型“Double”的值?没有打开

    我是 Swift 新手 这个错误是什么 let lvt self lastVibrationTime let delta self deltaTime let sens self shakeSensitivity let time Doub
  • 在 Interface Builder 中使用通用类作为自定义视图

    我有一个 UIButton 的自定义子类 import UIKit IBDesignable class MyButton UIButton var array String 它是 IBDesignable 我已将其设置为故事板中按钮之一的
  • CoreData 获取属性的不同值

    我正在尝试设置我的NSFetchRequest核心数据以检索实体中特定属性的唯一值 IE 具有以下信息的实体 name rate factor John 3 2 4 Betty 5 5 7 Betty 2 1 2 Betty 3 1 2 E
  • 如何与Socket.io连接?雨燕4

    我已阅读最新文档 https github com socketio socket io client swift of Socket io对于斯威夫特 还有一个新连接的示例 let manager SocketManager socket
  • 使用 NSOutputStream 通过套接字发送数据的正确方法

    我刚刚开始在 iOS 上进行套接字编程 我正在努力确定 的使用NSStreamEventHasSpaceAvailable活动为NSOutputStreams 一方面 苹果官方文档 清单2 https developer apple com
  • UICollectionView cellForItemAtIndexPath 未注册单元格

    我正在尝试使用UICollectionViewCell 因为我想显示的只是一张图像 我可以使用将图像添加到单元格中UIColor colorWithImage on the UICollectionViewCell s contentVie
  • Xamarin-ios 共享和接收音频文件

    如何将我的应用程序中的音频文件共享给其他应用程序并从其他应用程序接收音频文件 I would like a functionality like this 我无法附加音频文件 这是代码片段 var fileData NSUrl FromFi
  • Objective-C中如何使用后台线程?

    我试图在按下按钮时运行 while 循环 但无法按下按钮 因为 while 循环会阻塞 UI 是否有一个后台线程 我可以在其中运行 while 循环并推送UIButton 就个人而言 我会在 UI 顶部运行 HUD 活动指示器 然后在后台运
  • 不使用 ARC 时替换 __weak

    我有这行代码 weak NSBlockOperation weakOperation operation 这是触发此编译器错误 weak attribute cannot be specified on automatic variable
  • 循环遍历 NSMutableDictionary

    如何循环遍历 NSMutableDictionary 中的所有对象而不考虑键 标准方式如下所示 for id key in myDict id value myDict objectForKey key value doStuff
  • 在 ARSCNView 中加载大型 3d 对象 .scn 文件 Aspect 适合屏幕 ARKIT Swift iOS

    我正在使用 3d 模型开发 ARKit 应用程序 为此 我使用了 3D 模型并添加了用于移动 旋转和缩放 3D 模型的手势 现在我只面临 1 个问题 但我不确定这个问题是否与什么有关 3d 模型是否存在问题 或者我的程序是否缺少任何内容 问
  • 在 iOS 11 上使用 Swift 计算或获取 wifi 强度的方法

    正在寻找一种获取或计算设备 WiFi 强度的方法 见过抓取状态栏的示例 但无法使其在 iOS 11 上工作 func getSignalStrength gt Int let application UIApplication shared
  • 错误域 = NSCocoaErrorDomain 代码 = 3840 “字符 0 周围的值无效

    嗨 我是 swift 的新手 我遇到了问题 我用 post 方法向服务器发出了请求 我得到了良好的 Json 响应 之后我用 get 方法发出了另一个请求 但我收到了这个错误 Error responseSerializationFaile
  • 在 Xcode 4 中将 iPhone 应用程序转换为通用应用程序

    我正在尝试将现有的 iPhone 应用程序项目升级为通用应用程序 但我在 Xcode 4 中找不到任何选项来执行此操作 它在哪里 接受的答案是错误的 创建新目标是指如何从 iPhone 应用程序创建单独的 iPad 应用程序 即可以编译为
  • 如何在 iOS 上创建图库

    我开始为 iOS 开发一个简单的应用程序 这个应用程序是一些照片的简单画廊 取自网站 我遇到的第一个问题是如何创建图库的视图 The view should be something like this or the Photo App 然

随机推荐