UIScrollView错误的偏移量

时间:2016-11-26 15:31:02

标签: swift uiscrollview

我在scrollview中有几个标签。每个标签都是“页面”。但是抵消是不对的。我找不到问题。

我的代码:

 for (int x = 0; x < map.sizeX; x++)
    {
        for (int y = 0; y < map.sizeY; y++)
        {
            if (!(x == pVal.x && y == pVal.y) && map.grid[x, y].passable )
            {
                float dot = 1;
                var heading = (grid[x, y].position - t.position).normalized;
                heading.y = 0;
                foreach (Vector3 direction in map.GetDirections())
                {
                    var dot2 = Vector3.Dot(heading, direction.normalized);
                    if (dot > dot2 )
                    {
                        if (map.grid[x + (int)direction.x, y + (int)direction.y].passable)
                        {  // Error thrown when it reaches this if-statement \\
                            grid[x, y].direction = direction;
                            dot = dot2;
                        }
                    }
                }

            }
        }
    }

左侧的粉红色来自之前的“页面”。

enter image description here

再次注意前一页(编号8)左侧的紫色。

enter image description here

第一页似乎很好。但是,数字越大,偏移越大。我想覆盖1个标签的整个可见区域。

有人知道解决方案吗?

1 个答案:

答案 0 :(得分:1)

您的代码适用于我。

请注意,由于自动布局,scrollView的大小可能会在viewDidLoad后更改。设置scrollView的更好地方是覆盖viewDidLayoutSubviews。之后将建立scrollView的大小。但要小心,因为viewDidLayoutSubviews会多次运行,所以请确保只设置一次scrollView。

这不是您的错误,但您的contentSize.width太大了。您不需要将1添加到quantity,因为您的scrollView内容区域中只有quantity个标签。

scrView.contentSize.width = width * CGFloat(quantity)

另外,Swift在行的末尾不需要;,所以删除它们。