目前,我可以将所有照片加载到页面上,但是,它们都会在应用程序的中心加载。我希望在它所属的数据之前显示图像。
例如:
[照片]
名称:
性别:
年龄:
[照片]
名称:
性别:
年龄:
...
这是我目前的代码(从xml url加载的数据),我试图查看rect
和其他属性,但我没有运气。
repeat for each line tChild in tChildren
add 1 to x
put revXMLChildNames( tInfo, "ArrayOfXmlNode/"&tChild&backslash, return, "adoptableSearch", true) into tAdoptable
put revXMLNodeContents( tInfo, "ArrayOfXmlNode/"&tChild&"/"&tAdoptable&"/Photo") into tURL
put url tUrl into tPhoto
if the result is empty then
set the text of img x to tPhoto
else
beep
end if
put "Name: " & revXMLNodeContents( tInfo, "ArrayOfXmlNode/"&tChild&"/"&tAdoptable&"/Name") & return after tData
...
end repeat
提前感谢您的帮助!
答案 0 :(得分:0)
由于您没有在代码中创建图像,我假设您在重复循环之前创建了它们,然后您需要锁定图像的大小和位置。
我的另一个建议是创建一个模板组,其中包含图像和一个或多个字段(名称,性别,年龄等)。然后,您可以为每个部件创建一个漂亮的布局。完成后,您可以锁定组内的所有内容,但仍可轻松设置整个组的位置。最后,您可以将模板组移到卡片外部或隐藏它。
put 50 into tTop
put 20 into tLeft
put the width of group "templateGroup" into tTempGW
put the height of group "templateGroup" into tTempGH
put 0 into tCount
repeat for each line tChild in tChildren
copy group "templateGroup" to this card
put it into tGroupID # It holds the long id after a copy operation
put url tUrl into tPhoto
if the result is empty then
set the text of img 1 of tGroupID to tPhoto
else
beep
end if
# Position the new group
set the topLeft of tGroupID to tLeft,tTop
add tTempGW to tLeft
if tLeft + tTempGW > the width of this stack then
# Next item will be partly outside so we move down
add tTempGH to tTop
put 20 into tLeft
end if
# Set some proper name
add 1 to tCount
set the name of tGroupID to ("Person" && tCount)
put revXMLNodeContents( tInfo, "ArrayOfXmlNode/"&tChild&"/"&tAdoptable&"/Name") into field "name" of tGroupID
...
end repeat
您当然可以使用其他值进行上下左右。我通常使用一个空组来保存所有其他组,然后使用该组的边界作为顶部,左侧,右侧。