如何在应用CGAffineTransform(translationX)后对UIView的帧进行单元测试

时间:2017-04-22 09:28:10

标签: ios swift unit-testing

我想使用var mapRequest = request(pQuestURL); mapRequest.on('error', function (err) { console.log(err); res.json({ status: -1, message: 'Maps error, check your parameters' }); }); mapRequest.pipe(writeStream); mapRequest.pipe(res); 测试以下方法:

Quick

这是我用于测试的代码(简化版):

func initial(states: UIView...) {
    for view in states {
        view.transform = CGAffineTransform(translationX: 0, y: 20)
    }
}

测试不起作用,x和y不会改变 我的问题是如何在应用转换后得到正确的(x,y)坐标?

1 个答案:

答案 0 :(得分:2)

应用转换后,framecenterbounds属性不会更改。 frame的文档甚至声明:

  

如果transform属性不是identity变换,则此属性的值是未定义的,因此应该被忽略。

     

API Reference

为了获得有效的帧,我建议将视图转换应用到视图框架上(使用applying(_:)上的CGRect方法。在您的情况下看起来像:

let resultingFrame = view1.frame.applying(view1.transform)
expect(resultingFrame.origin.x) == 0
expect(resultingFrame.origin.y) == 20