gpt4 book ai didi

ios - 我如何创建具有新原点但利用现有大小的 CGRect?

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:28:44 25 4
gpt4 key购买 nike

在 objective-c 中,我经常在动画期间更新 View 的帧。我目前有一个困惑的解决方案:

CGPoint newOrigin = CGPointMake(25.0, 25.0);    
view.frame = CGRectMake(newOrigin.x, newOrigin.y, view.frame.size.width, view.frame.size.height);

我正在寻找的是一种简单方便的方法,其工作方式如下:

view.frame = CGRectWithNewOrigin(view.frame, newOrigin);

SDK 中是否存在执行此操作的现有方法,还是我需要定义自己的方法?

已解决:0x7fffffff 有正确答案,但 JackWu 的建议是更好的方法:

Jack Wu 提供的解决方案解决了我的问题。 iOS SDK 没有执行此操作的方法,因此您需要定义自己的内联方法来执行此操作。然而,使用 UIView 的 center 属性是更好的方法。无需定义内联函数,如果 View 应用了转换,它也将继续工作。

最佳答案

定义一个新的内联方法很容易,就像已经在使用的方法一样,比如 CGRectMake().. 像这样的东西怎么样?

static inline CGRect CGRectWithNewOrigin(CGPoint origin, CGRect frame) {
return CGRectMake(origin.x, origin.y, frame.size.width, frame.size.height);
}

然后像使用 CGRect 的任何其他功能一样使用它

CGPoint newOrigin = CGPointMake(25.0, 25.0); 
CGRect newRect = CGRectWithNewOrigin(newOrigin, oldRect);

关于ios - 我如何创建具有新原点但利用现有大小的 CGRect?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21788470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com