在 Corona SDK 中的滚动视图中居中文本

我正在为项目制作移动应用程序,但我遇到了一些问题。我已经成功实现了滚动视图并将文本框和其他物体插入其中,但是将文本居中放置在滚动视图内却变得困难。

我不确定还有哪些选项可以尝试,所以想请教一下是否有人可以帮忙。以下是相关代码的部分:

local widget = require("widget")

-- 滚动视图侦听器
local function scrollListener(event)

local phase = event.phase
if(phase == "began") then print("滚动视图被触摸")
elseif(phase == "moved") then print("滚动视图被移动")
elseif(phase == "ended") then print("滚动视图被释放")
end

-- 在滚动限制被达到时...
if(event.limitReached) then
    if(event.direction == "up") then print("到达底限")
    elseif(event.direction == "down") then print("到达顶限")
    elseif(event.direction == "left") then print("到达右限")
    elseif(event.direction == "right") then print("到达左限")
    end
end

return true
end

-- 创建部件
local scrollView = widget.newScrollView
{
    top = 50,
    left = 10,
    right = 10,
    width = 300,
    height = 388,
    scrollWidth = 600,
    scrollHeight = 800,
     topPadding = 120,
     bottomPadding = 50,
     leftPadding = 50,
     rightPadding = 50,
     horizontalScrollDisabled = true,
     verticalScrollDisabled = false,
    listener = scrollListener

}

local lotsOfText = "勒索软件是恶意软件的一种。恶意软件(也称为
恶意软件)是指旨在对受害者的数据或系统造成损害的程序,这种损害可能采取各种形式,从破坏性的(例如删除文件)到威胁受害者的数据或系统的保密性或完整性。"

local options = {
text = lotsOfText,
x = display.contentCenterX,
y = 200,
fontSize = 16,
align = "center"
}

local lotsOfTextObject = display.newText(lotsOfText, 0, 0, 275, 0, "Arial",
16)
lotsOfTextObject:setTextColor(0, 0, 0)
lotsOfTextObject.x = display.contentCenterX
lotsOfTextObject.y = display.contentCentery
scrollView:insert(lotsOfTextObject)

end
点赞
用户10111401
用户10111401

一些事情在这里发生。首先,我想指出,尽管你在选项中设置了x位置并在选项中居中对齐文本,但你没有使用那个表格,而是使用了旧的语法。 请参阅 https://docs.coronalabs.com/api/library/display/newText.html#syntax 了解如何使用新语法。

要在滚动视图中居中文本,您需要将x位置设置为滚动视图的一半宽度。

local options = {
    text = lotsOfText,
    x = display.contentCenterX,
    y = 200,
    fontSize = 16,
    align = "center"
}
local lotsOfTextObject = display.newText(options)
lotsOfTextObject:setTextColor( 0, 0, 0 )

--以下设置您的文本位于可滚动区域的中间
lotsOfTextObject.x = 300

--以下设置您的文本位于可查看区域的中间
lotsOfTextObject.x = scrollView.width / 2

--以下设置您的文本位于可查看区域的顶部
lotsOfTextObject.y = 0
lotsOfTextObject.anchorY = 0

scrollView:insert(lotsOfTextObject)
2018-07-20 14:46:51