2011-01-15 13 views
0
topLeftView: SC.ScrollView.design({ 
    backgroundColor: "#DADFE6", 
    childViews: 'labLabel labMembersLabel'.w(), 


    labLabel: SC.SourceListGroupView.design({ 
     layout:{top: 0, left: 0, width: 100, height: 100}, 
     value: "LABORATORY", 
     fieldLabel: "LAB", 
     backgroundColor: "white" 

    }), 

    labMembersLabel: SC.LabelView.design({ 
     layout: {top: 100, left: 0, width: 100, height: 100}, 
     value: "LAB MEMBERS" 
    }) 
    }), 

Weder labLabel unser LabMembersLabel erscheint ... Was fehlt mir?SC.LabelView.design nicht sichtbar

Antwort

1

Scrollview ist eine spezielle Ansicht, dass es nicht die childViews Array verwendet, sondern erwartet stattdessen ein haben Einzelansicht ‚content‘, wie Sie hier sehen können:

https://github.com/sproutcore/sproutcore/blob/master/frameworks/desktop/views/scroll.js#L42

Mit dieser Ansicht, es wird immer die Höhe/Breite, überwachen und automatisch Bildlaufleisten hinzufügen, wenn die content zu groß wird. Scroll-Ansichten werden normalerweise verwendet, um ListViews zu halten, die sehr lange dauern können.

SC.ScrollView.design({ 
    contentView: SC.ListView.design({ 
    contentBinding: 'App.myContentArrayController' 
    }) 
}) 

Was Sie todo wollen, ist so etwas wie zu ist:

SC.ScrollView.design({ 
    contentView: SC.View.design({ 
    layout: {...}, 
    childViews: 'labLabel labMembersLabel'.w(), 

    labLabel: SC.SourceListGroupView.design({ ... }), 

    labMembersLabel: SC.LabelView.design({ ... }) 
    }) 
}) 

Wenn die content ist kein Listview (oder eine andere Ansicht, die ein eigenes Layout steuert), ist es wichtig, ein Layout zu schaffen, Andernfalls ist die ScrollView nicht wirksam.

PS. Als eine Randnotiz ist dies nicht, wie man eine SC.SourceListGroupView verwendet. Diese können nur als 'exampleView' für eine SC.SourceListView verwendet werden.