在我的应用程序中,对于一个屏幕,我正在设置SpriteKit节点的大小和居中背景。例如,我正在设置背景子视图的大小,如下所示:
$scope.alertDayClick = function(event) {
// if on month view go day view
var view = uiCalendarConfig.calendars.myCalendar.fullCalendar( 'getView' );
if (view.type === 'month') {
console.log(view.type);
uiCalendarConfig.calendars.myCalendar.fullCalendar('changeView','agendaDay');
uiCalendarConfig.calendars.myCalendar.fullCalendar( 'gotoDate', event );
return;
}
}
虽然这适用于 iPhone 6 Plus ,但 iPhone 5 的较小屏幕/较低分辨率意味着其他节点的默认大小太大而不能适合他们的场景。
如何强制其他节点符合后台节点的大小? 我想用背景子视图的大小来划分每个子视图的大小,但不能直接在size属性上进行数学运算。
答案 0 :(得分:5)
SpriteKit场景(SKScene
)包含节点,节点(SKNode
),它们具有size
和position
属性(类型CGSize
和{{3} }}, 分别)。同样在iOS中,CGPoint
UIView
属性是frame
对象,包含CGRect
和CGSize
个对象。因此,了解如何使用CGSize
和CGPoint
确实有帮助。
SKNode大小和位置是类的原因就像具有多个字段的简单C结构一样,因为它们是"复合类型",即它们每个都包含多个值。例如,CGSize
包含width
和height
属性,CGPoint
包含x
和y
属性。
因此,如果要调整节点的大小和位置(或UIView
,通过其frame
属性),则需要额外的步骤来访问属性。
如果您想分割尺寸,则必须分别访问width
课程的height
和CGSize
属性。
一种方法是在一次操作中指定大小:
node.size = CGSize(width: node.size.width / backgroundNode.size.width,
height: node.size.height / backgroundNode.size.height)
或者你可以这样做:
node.size.width = node.size.width / backgroundNode.size.width
node.size.height = node.size.height / backgroundNode.size.height