最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

scroll

コンテナー、リスト ボックス、またはツリー内の位置にスクロール

説明

scroll(component,location) は、コンポーネント内の指定された位置までスクロールします。この構文は、関数 uifigure を使用して作成された Figure 内、または子コンポーネントであるグリッド レイアウト、パネル、ボタン グループ、タブ、ツリー、またはリスト ボックス内でのスクロールに使用します。

scroll(component,x,y) は、コンテナー内の指定された (x, y) 座標までスクロールします。座標はコンテナーの左下隅からピクセル単位で測定されています。この構文は、関数 uifigure を使用して作成された Figure と、子コンテナーであるグリッド レイアウト、パネル、ボタン グループ、またはタブをサポートします。スクロールが可能な場合の詳細については、スクロールを有効にするための条件を参照してください。

すべて折りたたむ

Figure を作成し、Scrollable プロパティを 'on' に設定します。次に、子コンポーネントを 5 個追加します。Figure を確実にスクロール可能にするには、最初のコンポーネントを Figure の上端より上に配置します。その後、コンポーネントが Figure 内に一緒に収まらないようにするために、それぞれを十分に離して配置します。

% Create figure
uf = uifigure('Name','Customer','Scrollable','on');
uf.Position = [100 100 493 283];

% Title label
title = uilabel(uf,'Text','Customer Record');
title.FontSize = 18;
title.FontWeight = 'bold';
title.Position = [173 315 157 22];

% Name
name = uieditfield(uf,'text');
name.Position = [169 239 173 22];
namelabel = uilabel(uf,'Text','Name','HorizontalAlignment','right');
namelabel.Position = [116 239 38 22];

% Phone
phone = uieditfield(uf,'text');
phone.Position = [169 164 173 22];
phonelabel = uilabel(uf,'Text','Phone','HorizontalAlignment','right');
phonelabel.Position = [114 164 40 22];

% Balance
balance = uieditfield(uf,'numeric');
balance.Position = [169 89 173 22];
balancelabel = uilabel(uf,'Text','Balance','HorizontalAlignment','right');
balancelabel.Position = [105 89 49 22];

% Submit button
button = uibutton(uf,'push','Text','Submit');
button.Position = [169 14 173 22];

既定では、MATLAB® は子コンポーネントを囲む領域の左上隅にスクロールします。

Figure の最下部である、位置 (1,1) にスクロールします。

scroll(uf,1,1);

ピクセル座標または位置名を指定して、スクロール可能なグリッド レイアウトの子コンポーネントを表示します。

5 行 2 列のグリッド レイアウトを作成し、グリッドの Scrollable プロパティを 'on' に設定します。その後、ラベル、テーブル、パネルをグリッドに追加します。パネルの Scrollable プロパティを 'off' に設定し、チャートをパネルに追加します。

uf = uifigure('Position',[782 497 435 311]);
g = uigridlayout(uf,'Scrollable','on');
g.RowHeight = {22,40,22,22,400};
g.ColumnWidth = {400,400};

lbl = uilabel(g,'Text','Tsunamis');
lbl.Layout.Row = 2;
lbl.Layout.Column = [1,2];
lbl.HorizontalAlignment = 'center';
lbl.FontSize = 28;

tsunamis = readtable('tsunamis.xlsx');
tsunamis.Cause = categorical(tsunamis.Cause);
t = uitable(g,'Data',tsunamis);
t.Layout.Row = [3,5];
t.Layout.Column = 2;

p = uipanel(g);
p.Scrollable = 'off';
p.Layout.Row = [3,5];
p.Layout.Column = 1;
gb = geobubble(p,tsunamis.Latitude,tsunamis.Longitude,...
    tsunamis.MaxHeight,tsunamis.Cause);

グリッド内の位置にスクロールします。

scroll(g,100,-30);

次に、位置名を使用して、グリッドの右下の隅にスクロールします。

scroll(g,'bottom','right');

スクロール位置を、表示するコンポーネントの最初の 2 つの位置座標として指定し、コンポーネントを表示します。

ドロップダウン コンポーネントが 2 つ、リスト ボックスが 1 つ、テーブルが 1 つある Figure を作成します。これらのコンポーネントを、Figure 内ですべて同時に表示されないように配置します。

uf = uifigure;
uf.Scrollable = 'on';
uf.Position = [100 300 328 110];

dd1 = uidropdown(uf);
dd1.Position = [20 360 120 22];

dd2 = uidropdown(uf);
dd2.Position = [20 200 120 22];

lb = uilistbox(uf);
lb.Position = [230 300 120 80];

t = readtable('patients.xls');
uit = uitable(uf,'Data',t);
uit.Position = [375 100 300 300];

テーブルにスクロールします。

scroll(uf,uit.Position(1:2));

名前および関連付けられた ItemsData のリストを含むリスト ボックスを作成します。

uf = uifigure('Position',[680 678 300 200]);
list = uilistbox(uf, 'Position',[70 50, 150 78]);
list.Items = {'Diane Fitzsimmons', 'Naomi Becker', 'Nick Stewart',...
           'Alex Bradford', 'Caroline Eliot', 'Leslie Bond', ...
           'Aaron Silberlicht', 'Ramu Sadasiv', 'Joyce Wu',...
           'Ann Shanahan'};
list.ItemsData = [1 2 3 4 5 6 7 8 9 10];

[Caroline Eliot] にスクロールします。

scroll(list,'Caroline Eliot');

[Caroline Eliot] を選択するには、Value プロパティを ItemsData プロパティの対応する要素に設定します。

list.Value = 5;

4 つの最上位ノードとそれぞれの子ノードを含むツリーを作成します。

uf = uifigure;
tree = uitree(uf,'Position',[20 20 175 100]);
    
% First level nodes
category1 = uitreenode(tree,'Text','Runners');
category2 = uitreenode(tree,'Text','Cyclists');
category3 = uitreenode(tree,'Text','Hikers');
category4 = uitreenode(tree,'Text','Swimmers');

% Second level nodes
r1 = uitreenode(category1,'Text','Joe');
r2 = uitreenode(category1,'Text','Linda');
c1 = uitreenode(category2,'Text','Rajeev');
h1 = uitreenode(category3,'Text','Jack');
s1 = uitreenode(category4,'Text','Logan');

ノードを展開します。[Swimmers] がビューの外側にスクロールします。

expand(tree);

[Swimmers] ノードにスクロールします。

scroll(tree,category4)

Tree オブジェクトの SelectedNodes プロパティを設定して、[Swimmers] ノードを選択します。

tree.SelectedNodes = category4;

入力引数

すべて折りたたむ

スクロール可能なコンポーネント。関数 uifigure を使用して作成された Figure、またはその Figure 内にあるグリッド レイアウト、パネル、ボタン グループ、タブ、リスト ボックス、ツリーのいずれかのコンポーネントとして指定します。

スクロール位置。'top' または 'bottom'、あるいは table にリストされた値として指定します。値 'top' と値 'bottom' は、コンポーネントの最上部と最下部にスクロールします。他の値はコンポーネントのタイプに固有です。コンテナーの隅までスクロールするには、'top' または 'bottom' スクロール位置と 'left' または 'right' を組み合わせます。たとえば、scroll(uf,'left','top') のようになります。

コンポーネント

Figure
パネル
ボタン グループ
タブ
グリッド レイアウト

  • 'left' — コンテナーの左端までスクロール。

  • 'right' — コンテナーの右端までスクロール。

ツリー

  • TreeNode オブジェクト — 指定されたツリー ノードまでスクロール。

リスト ボックス

  • Items プロパティの要素 — リスト ボックス内の指定された項目までスクロール。

  • ItemsData プロパティの要素 — リスト ボックス内の対応する項目までスクロール。

x 座標。コンテナーの左端を基準としたピクセル単位の数値として指定します。指定した値がコンテナーのスクロール可能な領域を超える場合、コンテナーは指定した方向に向かって可能な限りスクロールします。

y 座標。コンテナーの下端を基準としたピクセル単位の数値として指定します。指定した値がコンテナーのスクロール可能な領域を超える場合、コンテナーは指定した方向に向かって可能な限りスクロールします。

グリッド レイアウトの高さが親コンテナーより高い場合、負の y 座標を使用すると、親コンテナーの下端より下にあるグリッド内のコンポーネントにスクロールできます。

詳細

すべて折りたたむ

スクロールを有効にするための条件

コンテナー内でスクロールできるようにするには、コンテナーの 'Scrollable' プロパティが 'on' に設定されていなければなりません。これに加えて、以下のコンテナー特有の条件を満たしていなければなりません。

グリッド レイアウト

  • グリッドの 'RowHeight' プロパティに対して指定した値の合計は、親コンテナーの高さより大きくなければならない。

  • グリッドの 'ColumnWidth' プロパティに対して指定した値の合計は、親コンテナーの幅より大きくなければならない。

  • グリッドの少なくとも 1 行または 1 列が、固定ピクセルの高さまたは幅に設定されていなければならない。

  • グリッドにコンポーネントが含まれていなければならない。

グリッド レイアウト以外のコンテナー

  • コンテナー内の子コンポーネントは、コンテナーが一度に表示できるよりも大きい領域を占めていなければならない。

  • コンテナーに収まらないコンポーネントは、コンテナーより上または右になければならない。

R2016a で導入