gpt4 book ai didi

ios - 使用自动布局和 CGAffineTransform

转载 作者:行者123 更新时间:2023-11-28 06:52:38 24 4
gpt4 key购买 nike

我在使用自动布局和旋转时遇到问题。在我的应用程序中,我有一个轮子,上面有几个 View 需要旋转以适合圆圈(可以平移、滚动)。

深色方 block 是 MenuView 的背景,它包含一个 UILabel、两个 UIImageViews 和三个 UIButtons .所有这些都受到限制,在 XIB 文件中指定。

一切正常,直到我将 View 旋转到 0、90、180、270 以外的其他位置,... MenuView 的所有内容都获得了一个 x 偏移量。

我不知道如何摆脱这种偏移。也许它与 translatesAutoresizingMaskIntoConstraints 有关,但我无法在正确的 View 上正确使用它。希望有人能帮我解决这个问题。

代码

//Menu View Holder
let menuViewHolder = UIView(frame: self.bounds)
self.addSubview(menuViewHolder)
viewHolders.append(menuViewHolder)

//Menu View
let menuView = self.addView(MenuView.self, fromNib: "MenuView")
menuView.colorSet = UIColorSet.getDefaultSet()
menuView.translatesAutoresizingMaskIntoConstraints = true
menuViewHolder.addSubview(menuView)
views.append(menuView)

//Frame
let screenWidth:CGFloat = 320.0
let width:CGFloat = screenWidth
let height:CGFloat = 300.0
menuView.frame = CGRect(x: (self.bounds.width-width)/2.0, y: 0.0, width: width, height: height)

//Rotation
let angle = CGFloat(menuViewIndex)*CGFloat(viewAngle);
//menuViewHolder.transform = CGAffineTransformMakeRotation(angle + CGFloat(M_PI/2.0))
menuViewHolder.layer.transform = CATransform3DMakeRotation(angle + CGFloat(M_PI/2.0), 0, 0, 1)

视觉

WheelView in 0, 30, 60, 90 degrees rotation

最佳答案

好吧,我有点修好了。

我在 UIViewControllerviewDidLoad 中设置所有框架、旋转和添加 subview 。当我在 viewDidAppear 中旋转时,一切正常。有点奇怪的是,在代码中依次设置帧和旋转会相互影响。在等待 View 完全设置(通过 viewDidAppear 完成)期间修复了这些问题。

关于ios - 使用自动布局和 CGAffineTransform,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34480646/

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