反转 CGRect - Swift

Posted

技术标签:

【中文标题】反转 CGRect - Swift【英文标题】:Reversing CGRect - Swift 【发布时间】:2018-06-05 19:51:55 【问题描述】:

如何撤销我的origin.x?我的origin.x 从右边开始我想从左边开始。例如,我的应用程序中 x 的这些来源是从最右边开始的:

1) 351.0

2) 304.0

3) 257.0

4) 210.0

5) 163.0

6) 116.0

7) 69.0

8) 22.0

我怎样才能扭转这些起源,从 22.0 开始,到 351.0 结束?

代码:

var ansWithoutSpaces = String()
ansWithoutSpaces = answersString.replacingOccurrences(of: " ", with: "")

var targetHeigt = CGFloat()
let viewWidth = self.view.frame.size.width  

if viewWidth == 320         
    targetHeigt = 2.5
 else             
    targetHeigt = 5


let yAxis : Int = Int((self.view.frame.height) * 60%)     
let lenghtOfChar = ansWithoutSpaces as NSString
// char count
let width: Int = Int(view.frame.size.width) - 40
// frame width
var targetWidth: Int = (width - (lenghtOfChar.length - 1) * 5) / lenghtOfChar.length

if targetWidth > 50 
    if viewWidth == 320 
        targetWidth = 38 
     else if viewWidth == 375 
        targetWidth = 45
     else 
        targetWidth = 50
    


let totalWidth: Int = (targetWidth * lenghtOfChar.length) + ((lenghtOfChar.length - 1) * 5)

for x in 0..<ansWithoutSpaces.count 
    let xAxis: Int = (width / 2) - (totalWidth / 2) + (x * targetWidth) + (x * 5) + 20
    let targetLabel = UILabel(frame: CGRect(x: CGFloat(xAxis), y: CGFloat(yAxis), width: CGFloat(targetWidth), height: targetHeigt))

        ...    

【问题讨论】:

更改用于xAxis 的公式。那是你要的吗?有什么问题? 尝试将您的来源插入一个数组,然后您可以使用 array.reverse 以相反的顺序获取它们。 是的,我想反转xAxis@rmaddy 我该怎么做? @HAK 你可以尝试在for x in (0..&lt;ansWithoutSpaces.count).reversed()那里反转你的最后一个for循环 【参考方案1】:
for arrayIndex in stride(from: ansWithoutSpaces.count - 1, through: 0, by: -1) 
    x = ansWithoutSpaces[arrayIndex]

【讨论】:

【参考方案2】:

@Nordeast 解决了它:

for x in (0..<ansWithoutSpaces.count).reversed() 
        ...    

【讨论】:

以上是关于反转 CGRect - Swift的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Swift 中的输入音频文件生成相位反转音频文件?

swift 在Swift中反转字符串的几种方法

在 Swift 中反转数组

在 Swift 中反转 CRC-32 NSData

反转 SWIFT 中导航控制器的默认转换 [重复]

为啥我不能在我的 Swift iOS 应用程序中使用 CIFilter 将我的图像反转回原始图像