2009-08-18 9 views
1

非ゼロの幅の要素が0を返す場合、なぜwidth関数がすべての要素に実装されるのか分かりません。以下は私のために0を返します。Shoes:Element.width return 0

Shoes.app do 
    p = para "My width is: " 
    para p.width 
end 

なぜですか? (app.widthは0を返しません)

答えて

0

パラオブジェクトのサイズは描画時に動的に決定されるという問題があります。 2番目のパラを作成するときは、まだ実際にレイアウトされていないので、幅は設定されていません。

Shoes.app do 
    p = para "My width is: " 
    @para = para p.width 
    button 'Get Width' do 
    @para.text = p.width 
    end 
end 

をこれを回避する方法はあるスロットが最初に描かれたときに呼び出されるstartメソッドを使用することです:あなたは期待通りに作品を描いた後、幅にアクセスすることがわかります

Shoes.app do 
    p = para "My width is: " 
    width = para p.width 
    start do 
    width.text = p.width 
    end 
end 
+0

私はそれを手に入れました。あなたの返事をありがとう。 – Simon

関連する問題