1

特定の条件に基づいて、テーブル ビューに表示されている行数を動的に変更するにはどうすればよいですか。

空の行や空白を表示しないようにテーブル ビューを必要とする要件があります。

これを行う方法?

事前にt​​hnx。

@implementation AppDelegate

@synthesize searchField;

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// Insert code here to initialize your application

}


-(id)init
{
self = [super init];
if (nil!= self)
{
_arrayContents= [[NSMutableArray alloc] initWithObjects:@"a",@"as",@"sd",@"dfg",@"fh",@"sdf",@"ret",@"sdf",@"dsfxc",@"awert",@"xsdfcvg", nil];
_searchedArrayContents = [NSMutableArray arrayWithCapacity:[_arrayContents count]];

_menuArray = [[NSMutableArray alloc] initWithObjects:@"123",@"1231234",@"235435",@"5345345", nil];
}
    return  self;
}

-(void)awakeFromNib
{
//    [_menuTableView setHidden:YES];
//    [[[_menuTableView superview] superview] setHidden:YES];

[[[_menuTableView superview] superview] setFrame:NSMakeRect(100, 0, 234, 1000)];
[[_menuTableView superview] setFrame:NSMakeRect(0, 0, 234, 1000)];

[_menuTableView setFrame:NSMakeRect(0, 0, 234, 1000)];
}

- (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView
{

if (aTableView==_menuTableView)
{
    return  [_menuArray count];
}


if ([[searchField stringValue] length]>0 || [[_tokenField stringValue] length]>0 || [[_textField stringValue] length]>0)
{ 
    return [_searchedArrayContents count];
}
if (aTableView==_tableView)
{
    return [_arrayContents count];
}
return  0;
}

- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn         *)aTableColumn row:(NSInteger)rowIndex
{

if (aTableView==_menuTableView)
{
    return  [_menuArray objectAtIndex:rowIndex];
}

if ([[searchField stringValue] length]>0 || [[_tokenField stringValue] length]>0)
{
    return [_searchedArrayContents objectAtIndex:rowIndex];
}

if (aTableView==_tableView)
{
    return [_arrayContents objectAtIndex:rowIndex] ;
}
return nil;
}

上記のコードで TableView のフレーム位置を動的に変更しようとしました。しかし、それはフレームを変更しません。Interface Builder でドラッグ アンド ドロップしたのと同じ位置に残ります。

4

2 に答える 2

0

あなたの質問を理解できたかどうかわかりません。内容に応じてテーブルビューのサイズを変更しようとしている場合は、これを試してください。

1.必要な行数を取得する

2.行の高さを掛けます

3. テーブル ビューの高さを取得した高さに設定します。

4.テーブルビューの最小高と最大高を指定することもできます。

良い1日を:)

于 2013-07-03T10:56:21.643 に答える
0

行数表示の場合 -

 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section         {
return [nameArray count];

}

tableViewの高さ調整用 -

    UITableView *automotiveTable = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 400) style:UITableViewStylePlain];
    automotiveTable.contentSize = CGSizeMake(320,(70+([nameArray count]*60)+70)*h/480);
    automotiveTable.delegate = self;
    automotiveTable.dataSource = self;
    automotiveTable.backgroundView = backgroundImage;
    [self.view addSubview:automotiveTable];
于 2013-06-28T11:15:39.733 に答える