- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试绘制中间有二次曲线的贝塞尔曲线路径。该曲线在 iPhone 8 和 XS 上运行良好,但在其他设备上没有响应(即未正确呈现)。
下图为 iPhone XS 曲线图(正确)
和 iPhone XR(不正确)
我已经尝试使用 View 的约束来获取线的中间值,但不知何故它仍然不起作用
这是我绘制路径的代码:
//self.viewTabBorder is the grey line, which is a uiview with 1 pixel height
override func viewWillAppear(_ animated: Bool) {
let path = UIBezierPath()
path.move(to: CGPoint(x: self.viewTabBorder.center.x - self.btnHome.frame.width + 20, y: 0))
path.addQuadCurve(to: CGPoint(x: self.viewTabBorder.center.x + self.btnHome.frame.size.width - 20, y: 0), controlPoint: CGPoint(x: self.viewTabBorder.center.x, y: self.btnHome.frame.height + 5))
path.addLine(to: CGPoint(x: self.viewTabBorder.center.x + self.btnHome.frame.size.width - 20, y: 0))
let line = CAShapeLayer()
line.path = path.cgPath
line.strokeColor = UIColor(red: 224, green: 224, blue: 224).cgColor
line.fillColor = UIColor.white.cgColor
self.view.layer.addSublayer(line)
self.viewTabBorder.layer.addSublayer(line)
}
谁能告诉我我错过了什么?非常感谢您!
最佳答案
一些观察:
您正在定义子层到 View 的路径。在 viewWillAppear
中这样做还为时过早。布局引擎可能没有完成应用约束,将 View 放置在它们的最终位置。在 viewDidLayoutSubviews
中定义路径,不在 viewWillAppear
中(也不在 viewDidLoad
中,也不在 viewWillLayoutSubviews
中)。
这还有一个优点,就是如果您更改应用以支持多个方向或进行任何影响 View 约束的更改,我们将再次调用此 viewDidLayoutSubviews
,以便这些子层正确根据需要更新。如果您使用 viewWillAppear
,您的应用将不支持动态更改您的 View (如果您需要的话)。
话虽如此,请注意 viewDidLayoutSubviews
可以被多次调用。因此,例如,您可以在 viewDidLoad
中添加子层,但在 viewDidLayoutSubviews
中更新它们的路径。
这可能不是问题,但我建议您在为子层定义路径时避免使用 frame
或 center
。请记住,这两个属性是在它们的 superview 的坐标系中定义的。我建议您始终使用 View 的 bounds
(在 View 自己的坐标系中定义),而不是它的 frame
(在其父 View 的坐标系中定义)在尝试为子层定义路径时。例如,如果您想要在定义子图层路径时 View 的水平中心,请使用 bounds.midX
而不是 center.x
。
有时这无关紧要(如果 View 在其父 View 中是边到边的),但是(a)它表明对不同坐标系的误解; (b) 如果您曾经添加安全区域或以其他方式调整 View 的位置,使用 frame
/center
会给您带来麻烦。
一个稍微高级一点的概念:一旦你解决了眼前的问题,你可能会考虑将 subview 的这种配置移动到 UIView
子类中(使用它的 layoutSubviews
方法) ,甚至可能使它成为一个 @IBDesignable
类,这样您就可以在 Interface Builder 中看到它的呈现。或者,另一种方法是将其包装在容器 View Controller 中。但无论哪种方式,这都有助于防止 View Controller “膨胀”。这可能有点超出了这个问题的范围,但在您继续前进时需要考虑一些事情。
关于swift - 二次曲线在不同设备上无法正确呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56944715/
我正在尝试创建 treasury yield curve 的图表比较两个不同日期的汇率。我很难将两条曲线组合起来并创建一个干净的图形。 我的问题:如何将两条 yield 曲线绘制在一起, yield
我在 R 平台中使用 randomForest 包进行分类任务。 rf_object<-randomForest(data_matrix, label_factor, cutoff=c(k,1-k))
我的设计师给我设计了这个设计,但我不知道如何最好地处理图像上方和下方的曲线。 我考虑过 clip-path 但不知道如何 flex 它。如果可以的话,我不想使用图像。 最佳答案 您可以使用 borde
我正在使用 Canvas 中的笔触和路径来制作两条线,我希望它们像波浪效果一样弯曲。而不是在 Photoshop 中创建实际图像来实现此目的。 谁能帮忙得到如下图所示的曲线? 我还想在末端实现圆 An
我正在尝试开发一种可以处理图像骨架的路径/曲线的代码。我想要一个来自两点之间骨架的点 vector 。 这段代码加了点就结束了,没找到解决办法。 #include "opencv2/highgui/
现在需要帮助。我可以用MKPolyline和MKPolylineView画线,但是如何在MKMapView上的两个坐标之间画弧线或曲线呢?非常感谢。 最佳答案 在回答问题之前,重要的是要提到 MKOv
我正在尝试应用 sklearn 的想法 ROC extension to multiclass到我的数据集。我的每类 ROC 曲线看起来都找到了一条直线,取消显示曲线波动的 sklearn 示例。 我
我有以下概念问题,我无法理解。 以下是调查数据示例,其中我有一个时间列,指示某人需要多长时间才能回答某个问题。 现在,我感兴趣的是清洁量将如何根据此阈值发生变化,即如果我增加阈值会发生什么,如果我降低
如何为使用视频的对象检测应用绘制每个窗口的误报率与未命中率(或误报概率)和 ROC(接收器操作曲线)的图表?如何确定误报和命中的数量?一个例子是很有用。 最佳答案 它很简单。将所有真正 (H0) 值存
我正在尝试绘制随机森林分类的 ROC 曲线。绘图有效,但我认为我绘制了错误的数据,因为生成的绘图只有一个点(准确性)。 这是我使用的代码: set.seed(55) data.controls <
我有如下两个模型: library(mlbench) data(Sonar) library(caret) set.seed(998) my_data <- Sonar fitControl <-
是否可以仅通过查看其 ROC 曲线来了解分类器是否过度拟合?我看到如果它的 AUC 太高(例如 98%)可能会过度拟合,但这也可能意味着分类器非常好。有没有办法区分这两种情况? 最佳答案 简短的回答:
我正在 JavaFX 中创建一个图形,它应该由有向边连接。最好是双三次曲线。有谁知道如何添加箭头? 箭头当然应该根据曲线的末端进行旋转。 这是一个没有箭头的简单示例: import javafx.ap
我需要对我正在尝试的技术进行一些说明。我正在尝试将一个实体从 A 点移动到 B 点,但我不希望该实体沿直线移动。 例如,如果实体位于 x: 0, y:0 并且我想到达点 x:50, y: 0,我希望实
我试图在曲线下方绘制阴影区域,但阴影区域位于曲线上方。谁能告诉我我的代码有什么问题? x=seq(0,30) y1=exp(-0.1*x) plot(x,y1,type="l",lwd=2,col="
我需要对我正在尝试的技术进行一些说明。我正在尝试将一个实体从 A 点移动到 B 点,但我不希望该实体沿直线移动。 例如,如果实体位于 x: 0, y:0 并且我想到达点 x:50, y: 0,我希望实
我有一个如下所示的模型: library(mlbench) data(Sonar) library(caret) set.seed(998) my_data <- Sonar fitControl <
有没有办法从pyspark中的Spark ML获取ROC曲线上的点?在文档中,我看到了一个 Scala 的例子,但不是 python:https://spark.apache.org/docs/2.1
我正在尝试使用Local Outlier Factor (LOF)算法,并想绘制 ROC 曲线。问题是,scikit-learn 提供的库不会为每个预测生成分数。 那么,有什么办法可以解决这个问题吗?
我目前正在使用 GDI+ 绘制折线图,并使用 Graphics.DrawCurve 来平滑线条。问题是曲线并不总是与我输入的点匹配,这使得曲线在某些点上超出了图形框架,如下所示(红色是 Graph
我是一名优秀的程序员,十分优秀!