gpt4 book ai didi

ios - UIScrollView 框架 y 坐标在内容更新时向上移动 20 像素

转载 作者:行者123 更新时间:2023-11-28 07:11:18 25 4
gpt4 key购买 nike

原始 View ,在顶部位置:
enter image description here

添加新内容后的 View ,位于顶部( View 向上移动 20 像素)
enter image description here

稍微滚动到顶部后查看(就像刷新时下拉内容一样)
enter image description here

所以当我在这个 View 中添加一个新 View 并更新尺寸和所有内容以使其看起来正确时,我仍然有一个无法解决的问题。这使得 ScrollView 从 y 轴上法线点上方 20 像素处开始。

我尝试通过向 scrollView 框架添加 +20 像素来解决此问题。当我只进行 1 次更新时它工作正常,如果我现在进行多次更新,则 scrollView 在实际应该开始的位置下方开始很多像素。我尝试将 +20 添加锁定为仅在第一次发生,但没有用。另外, ScrollView 在新 View 中也会完全困惑。

我没有 Storyboard或 xib。该项目完全以编程方式开发。

顺便说一下,我检查了 scollView、self.view、cardView 中的每个变量,我认为这会影响它。问题是它们的框架变量都没有以任何方式改变。但他们表现得好像发生了什么变化,我只是想不通是什么。

override func viewDidLoad() {
super.viewDidLoad()

self.automaticallyAdjustsScrollViewInsets = false

navigationController?.navigationBar.hidden = false

createScrollView()
}

//我是如何在viewdidload中创建SV的

func createScrollView() {
scrollView.frame = self.view.frame
scrollView.showsVerticalScrollIndicator = true
scrollView.scrollEnabled = true
scrollView.userInteractionEnabled = true
scrollView.delegate = self
scrollView.sizeToFit()
scrollView.contentSize = CGSize(width: cardWidth, height: 100)
view.addSubview(scrollView)
}

//我如何在我的 ScrollView 中创建一个 View

func makeNewCard() {
var newCard = CardView()
newCard.createCard(sender: self)

gestureRecognizer = UIPanGestureRecognizer(target: self, action: Selector("cardWasDragged:"))
gestureRecognizer.delegate = self
newCard.addGestureRecognizer(gestureRecognizer)

scrollView.contentSize = CGSize(width: cardWidth, height: newCard.frame.height + CGFloat(50 + 64))
scrollView.addSubview(currentCardView)
}

//在另一个 View 类中创建我的 View

func createCard(#sender: CardVC) {
frame = CGRect(x: ScreenWidth/15, y: 64, width: cardWidth, height: cardHeight)
contentMode = UIViewContentMode.ScaleAspectFit
userInteractionEnabled = true
}

//在 View 中添加大约20-50像素的新内容

func newContent() {
var extraHeight = newHeight

frame = CGRect(x: ScreenWidth/15, y: 64, width: cardWidth, height: frame.height + extraHeight)

senderView.scrollView.contentSize = CGSize(width: cardWidth, height: senderView.scrollView.contentSize.height + extraHeight - 20) //Had to put -20, I guess I will remove the -20 after this is fixed
}

最佳答案

可能是因为 ViewController 属性(Under Top Bars)我遇到了同样的问题。

在代码中

    self.extendedLayoutIncludesOpaqueBars = NO;

尝试将其更改为:

enter image description here

如果有效请重播?如果不是,我将尝试考虑其他可能导致它的原因。祝你好运

关于ios - UIScrollView 框架 y 坐标在内容更新时向上移动 20 像素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28330882/

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