我的视图中有3个标签显示一些东西,下面是一个桌面视图(从屏幕中间开始)和 一种数据检索方法,我为表视图填充NSArray。 一切正常,现在的问题是如果表视图中的数组中有多个元素(超过屏幕可以一次显示)我无法向下滚动到底部,它总是再次自动滚动,好像表格视图是那里的空白区域(当然我没有检查过)。
它按照我的方式在前一个屏幕上工作,我认为iOS没有注意到标签或类似的东西 - 它认为表格视图有自己的整个屏幕。我尝试在xib中调整表视图的大小,让它在屏幕结束之前结束,但是表视图从它开始的位置开始占据所有屏幕。我也试过
initWithFrame:CGRectMake...
但这并没有奏效。有什么想法在这里发生?我真的很高兴得到一些帮助,谢谢你们!
编辑:
.h文件
@interface ZProjekt : UIViewController <RetailHeaderTabSource, MFMailComposeViewControllerDelegate , UITableViewDelegate, UISearchDisplayDelegate, UISearchBarDelegate, UITableViewDataSource>
{
NSString *messageBody;
NSString *subjectBody;
NSMutableArray *fieldsInTable;
int fieldscounter;
}
@property (strong, nonatomic) IBOutlet UILabel *tableNamed;
@property (strong, nonatomic) IBOutlet UILabel *objectsInTable;
@property (strong, nonatomic) NSArray *DetailModal;
@property (strong, nonatomic) IBOutlet UILabel *mboSyncGroup;
@property (strong, nonatomic) IBOutlet UITableView *tableView;
@end
这是tableview .m文件的代码
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return fieldscounter;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}
cell.textLabel.text = fieldsInTable[indexPath.row];
[Constants updateLabelValues:cell.textLabel withKey:k_IPhone_DetailCell_HeaderLabel];
return cell;
}
答案 0 :(得分:0)
试试这个:
[tableView setContentOffset:CGPointMake(tableView.frame.size.width, tableView.frame.size.height) animated:NO];
或
TableViewController-&gt; Table View上的检查剪辑子视图n自动调整子视图。
另外, 确保总行与tableView中的总内容相同,即3
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return 3;
}
发现问题!问题是,tableview不知道你要滚动哪一个表是最后一个还是前一个。您需要将值重新分配给NSMutableArray。您需要将table1中的数组内容存储到数组或字典中,并且需要重新分配CellForRowIndexPath。我遇到了同样的问题。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (tableView != table2.tblView) {
fieldsInTable = table1.fieldsInTable;
}
else
{
fieldsInTable = table2.fieldsInTable;
}
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}
cell.textLabel.text = fieldsInTable[indexPath.row];
[Constants updateLabelValues:cell.textLabel withKey:k_IPhone_DetailCell_HeaderLabel];
return cell;
}