- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个应用程序。我还没有完成 Swift 2.2/3.0 的学徒期,我正在寻找一些答案。
第一:我正在使用 PaintCode 生成 Swift 代码的开头。我制作了具有以下属性的绘图:
代码 swift :
func drawSpeedView(strokeGap strokeGap: CGFloat = 30, strokeDash: CGFloat = 4, strokePhase: CGFloat = 0, strokeWidth: CGFloat = 31, strokeStartAngle: CGFloat = 225, strokeEndAngle: CGFloat = 315) {
//// General Declarations
let context = UIGraphicsGetCurrentContext()
//// DashedLarge Drawing
let dashedLargeRect = CGRect(x: 14.5, y: 17.5, width: 291, height: 291)
let dashedLargePath = UIBezierPath()
dashedLargePath.addArcWithCenter(CGPoint(x: dashedLargeRect.midX, y: dashedLargeRect.midY), radius: dashedLargeRect.width / 2, startAngle: -strokeStartAngle * CGFloat(M_PI)/180, endAngle: -strokeEndAngle * CGFloat(M_PI)/180, clockwise: true)
UIColor.blackColor().setStroke()
dashedLargePath.lineWidth = strokeWidth
CGContextSaveGState(context)
CGContextSetLineDash(context, strokePhase, [strokeDash, strokeGap], 2)
dashedLargePath.stroke()
CGContextRestoreGState(context)
}
我的问题:此代码针对 iPhone 5 进行了优化。对于点数字的比例,我需要为 iPhone 6/6s 和 6+/6s+ 的 StrokeDash
值创建计算
我需要什么:我还没有知识库来进行周长计算。
我需要计算更换线路:
CGContextSetLineDash(context, strokePhase, [strokeDash, strokeGap], 2)
用十进制数替换,无论圆的周长是多少,都可以在圆周围画上虚线 12/6/15。
有人能解决我的问题吗?
我从哪里开始?
最佳答案
正如您从该行中看到的那样(从您的代码片段中):
let dashedLargeRect = CGRect(x: 14.5, y: 17.5, width: 291, height: 291)
绘图空间定义为宽度291点和高度291点。
对这些数字进行硬编码是一个坏主意,因为正如您所注意到的,这意味着代码只能在某些设备上正常工作,而不能在其他设备上正常工作。
要解决此问题,您只需声明以下函数即可动态获取这些分辨率:
func windowHeight() -> CGFloat {
return UIScreen.mainScreen().applicationFrame.size.height
}
func windowWidth() -> CGFloat {
return UIScreen.mainScreen().applicationFrame.size.width
}
然后你可以创建dashedLargeRect
例如:
let dashedLargeRect = CGRect(x: 14.5, y: 17.5, width: windowWidth()-20, height: windowHeight()-20)
通过这种方式,您可以使代码与设备无关,这始终是一种很好的做法。 (请注意,我还没有触及 CGRect
“origin”,又名 x
、 y
参数,考虑一下你的作业:))。
如果我理解正确的话,你想知道如何绘制虚线弧。
secret 就在眼前
dashedLargePath.addArcWithCenter(CGPoint(x: dashedLargeRect.midX, y: dashedLargeRect.midY), radius: dashedLargeRect.width / 2, startAngle: -strokeStartAngle * CGFloat(M_PI)/180, endAngle: -strokeEndAngle * CGFloat(M_PI)/180, clockwise: true)
可以查看addArcWithCenter文档here ,让我为您简化一下:
let arcCenter = CGPoint(x: dashedLargeRect.midX, y: dashedLargeRect.midY)
let radius = dashedLargeRect.width / 2
let startAngle = -strokeStartAngle * CGFloat(M_PI)/180
let endAngle = -strokeEndAngle * CGFloat(M_PI)/180
dashedLargePath.addArcWithCenter(arcCenter,
radius: radius,
startAngle: startAngle,
endAngle: endAngle,
clockwise: true)
现在这段代码的作用应该更清楚了,如果您想在这段代码上画另一条线(例如显示车速、风速、气压等),您所要做的就是调用具有更小/更大半径的类似函数,并且可能使用不同的线条样式(也称为更改 CGContextSetLineDash
、 dashedLargePath.lineWidth
和 UIColor.blackColor().setStroke()
线)。
关于swift - 计算虚线圆圈中的笔画属性 'Dash' - Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38449945/
Mpeg 短跑流媒体 我正在写关于直播的论文。我使用带有 rtmp 模块的 ffmpeg,ngix 服务器和来自 Dash industry 的 dash.js .我通过 ffmpeg 开始流到服务器
我正在创建一个播放静态 mpeg-DASH 文件的应用程序。我一直在使用 MP4Box 创建 DASH .mp4 和 .mpd 文件。 MPD 文件包含单个 .mp4 文件中的字节范围偏移列表。这工作
当从任何一个下拉列表中选择任何选项时,我希望从所有其他下拉列表中删除相同的选项。 为了帮助形象化这一点,我正在尝试构建一个列映射器。对于左侧的每个列名,右侧都有一个下拉列表,用户可以在其中从他们上传的
我正在尝试为不同的信息集创建一个具有多个选项卡的应用程序。我的第一个想法是使用 html 按钮,但没有 dash_core_component 用于此,而且我找不到任何可以在其位置使用的文档。基本上,
请建议我如何在 dashing 应用程序中显示图像(在引用使用 dashing.io rubygem 创建的应用程序中) 最佳答案 使用图像小部件: 请注意,路径 /logo.png 指
我发现 Core Graphics 想要的字体名称与 UIFont 接受的不同。 例如,CG 接受“Helvetica Bold”但不接受“Helvetica-Bold”,而 UIFont 则相反。
我已将 dash 应用程序连接到 AWS RDS。我有一个实时更新的图表,它触发一个 n_interval 为 5 分钟的回调来查询数据库并进行一些昂贵的格式化。我将转换后的数据(约 500 个数据点
我对 Dash Plotly 很陌生,我正试图弄清楚如何设计这样的布局。 Layout : 据我了解,使用 dash bootstrap 组件可以更轻松地完成此操作。 https://dash-boo
我已经构建了一个仪表板并使用我自己的 css 自定义了外观。该应用程序的结构如下 然后我对我们的 linux 服务器进行了docker化和部署。不幸的是,我们的 linux 服务器用它自己的 css
戒指dash_daq.Gauge输出太薄,如下图所示。 我想要更厚的戒指。我在'inspect element'下找不到css元素来增加环的厚度。我该怎么做? 最佳答案 只需创建一个 assets 文
是否可以在图表底部有一个文本字段,以破折号显示它们所在点的文本(将悬停数据显示为纯文本)。因此,当用户将鼠标悬停在某个点上时,文本框将能够进行更改。我已经定义了一个 dcc.Graph 组件和应用程序
我正在尝试运行此 Dash 教程 https://github.com/cryptopotluck/alpha_vantage_tutorial/tree/master/dash_bootstrap/
作为 Dash 的初学者,我有一个简单的问题。我正在使用一个表来接受用户输入,读入它,最终对其执行一个操作,然后在第一个下面返回一个结果表。下面是我的代码: import dash import da
我正在尝试通过 macOS 上的 Jupiter notebook 运行 dash。它确实被导入,当我尝试运行 app.run_server 命令时它失败了。它给了我以下错误 [Errno 8] no
我遇到了 Plotly Dash 的问题,即由 dcc.Store 组件触发的回调每次触发两次。请参阅下面的代码和示例输出代码,它基于 Dash 文档 ( https://dash.plot.ly/d
我正在使用 dash 应用程序调用包含 351 列的大约 250,000 个值的大型数据集,以便我可以显示它。然而,它需要很长时间才能运行,我认为这是因为我从一个不同的应用程序调用数据,我用来收集名为
我正在更新一些代码以使用 Dash 和plotly。绘图的主要代码是在类中定义的。我用 Dash 控件替换了一些 Bokeh 小部件,最终得到了如下所示的回调: class MakeStuff:
我正在尝试实现用于播放受 widevine 保护的视频的 Android 应用程序。我在 Exoplayer 上构建我的应用程序,但我遇到了 MediaDrm 问题。 android.media.Me
你可以在这里看到实现: http://jsfiddle.net/Wtcdt/ 在 Mac 上的 FireFox 中,该圆圈是圆形/实心的。我想要它是虚线还是点线。 更奇怪的是,相同的属性(即 bord
我看GPUImage2的源码 picture = PictureInput(image:UIImage(named:"WID-small.jpg")!) filter = Satura
我是一名优秀的程序员,十分优秀!