我在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;
}
}
}
}
}
}
左侧的粉红色来自之前的“页面”。
再次注意前一页(编号8)左侧的紫色。
第一页似乎很好。但是,数字越大,偏移越大。我想覆盖1个标签的整个可见区域。
有人知道解决方案吗?
答案 0 :(得分:1)
您的代码适用于我。
请注意,由于自动布局,scrollView的大小可能会在viewDidLoad
后更改。设置scrollView的更好地方是覆盖viewDidLayoutSubviews
。之后将建立scrollView的大小。但要小心,因为viewDidLayoutSubviews
会多次运行,所以请确保只设置一次scrollView。
这不是您的错误,但您的contentSize.width
太大了。您不需要将1
添加到quantity
,因为您的scrollView内容区域中只有quantity
个标签。
scrView.contentSize.width = width * CGFloat(quantity)
另外,Swift在行的末尾不需要;
,所以删除它们。