gpt4 book ai didi

objective-c - 如何动态更改nstableview中显示的行数

转载 作者:行者123 更新时间:2023-12-03 17:22:40 24 4
gpt4 key购买 nike

我们如何根据特定条件动态更改 TableView 中显示的行数。

我有一个要求,需要 TableView 不显示任何空行或空格。

如何做到这一点?

提前致谢。

@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 中拖放的相同位置。

最佳答案

用于显示行数 -

 - (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];

关于objective-c - 如何动态更改nstableview中显示的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17363170/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com