表视图滚动一直向下不工作

时间:2014-07-21 14:05:33

标签: ios objective-c uitableview

我的视图中有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;
}

1 个答案:

答案 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;

}