两个相同的CGSize和一个看起来更小

时间:2018-02-22 15:36:51

标签: ios swift

我有一个ImageView,我有一个CustomView,我想在屏幕上显示相同的大小。

public override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
progress.frame.size = circle.frame.size
print("Progress frame size w: \(progress.frame.size.width) h: \(progress.frame.size.height)
print("Circle frame size w: \(circle.frame.size.width) h: \(circle.frame.size.height)

//Progress frame size w: 300 h: 300
//Circle frame size w: 300 h: 300

然而它们在模拟器上显示的大小不同:

enter image description here

我尝试设置边界而不是框架。我还尝试计算从视图到圆圈的差异,并根据以下内容设置进度框架:

let widthDifference = UIScreen.main.bounds.width - circle.frame.size.width
let progressWidth = UIScreen.main.bounds.width - widthDifference
...

但没有成功。

我不知道发生了什么,我对iOS开发真的很陌生,很多东西对我来说很奇怪。

当场景包装在NavigationController中时,进度条的大小很好。当我移除NavigationController时,尺寸完全被拧紧了。

仅供参考:圆形是图像视图。进度为third-party circular progress bar

感谢您的时间!

1 个答案:

答案 0 :(得分:1)

您的进度条确实与您的圆圈尺寸相同,但这并不意味着该横条将采用直径为300px的完整尺寸。

如果您感到好奇,请查看此line from the libraryand also this line以了解如何创建半径。

您还可以尝试打印arcRadius的值,且值必须小于150像素。