标签: reloaddata

3
推荐指数
1
解决办法
1995
查看次数

UICollectionView didselect不起作用

每次我按下一个单元格,我希望单元格更改图像:

- (void)collectionView:(UICollectionView *)collectionView didDeselectItemAtIndexPath:(NSIndexPath *)indexPath
  {

      if ([[arrayOfImages objectAtIndex:indexPath.item] isEqual: @"dog.png"]) {
          [arrayOfImages replaceObjectAtIndex:indexPath.item withObject:@"cat.png"];

      } else if ([[arrayOfImages objectAtIndex:indexPath.item] isEqual: @"cat.png"]) {
          [arrayOfImages replaceObjectAtIndex:indexPath.item withObject:@"lion.png"];

      } else if ([[arrayOfImages objectAtIndex:indexPath.item] isEqual: @"lion.png"]) {
          [arrayOfImages replaceObjectAtIndex:indexPath.item withObject:@"dog.png"];

      }

    [myCollectionView reloadData];
  }
Run Code Online (Sandbox Code Playgroud)

我按下一个单元格,没有任何反应,现在如果我按下另一个单元格,前一个单元格会改变图像,同样的事情发生在我按下的每个单元格上.更改的图像始终是前一个单元格的图像.这就像它不会更新collectionView,因为我再次按下collectionView.

iphone didselectrowatindexpath reloaddata ios uicollectionview

3
推荐指数
1
解决办法
3313
查看次数

为什么我不能在viewWillAppear中调用reloadData和deselectRowAtIndexPath:同时进行动画处理?

我有一个带有单元格的UITableView,可以在选中时将viewControllers推送到堆栈.子视图控制器接受用户输入,然后弹出堆栈.

当弹出子viewController时,我希望父tableView更新所选单元格的值,然后取消选择该行.我可以使用reloadData更新单元格,我可以使用deselectRowAtIndexPath取消选择该行 - 但我不能同时执行这两个操作.

我理解为什么这是 - reloadData隐式取消选择单元格,deselectRowAtIndexPath明确地取消选择它,但我发现很奇怪我找不到任何想要实现相同重载/取消选择行为的人.我在这里错过了什么?

所有代码都在viewWillAppear:animated中 - 如果我在viewWillAppear中放置deselectRowAtIndexPath并在viewDidAppear中放入reloadData,我可以接近,但这不是我想要的.

cocoa-touch uitableview reloaddata

2
推荐指数
1
解决办法
1960
查看次数

你如何在UITableViewController中重载UITableView"reloadData"方法?

你如何在UITableViewController中重载UITableView"reloadData"方法?

例如,在我的每个UITableView上调用reloadData时,都要显示/确认

iphone uitableview reloaddata ios

2
推荐指数
1
解决办法
5249
查看次数

UITableView reloadData占用了太多时间

我正在使用TBXML + HTTP从网站获取XML数据.我想要做的是用处理过的数据填充UITableView.我已经创建了一个包含所有条目的NSMutableArray,并且就此而言,一切正常.问题是,在成功从服务器获取数据并将其存储在数组中之后,我尝试使用更新表来显示数据reloadData.

用20行填充表大约需要5秒钟.奇怪的是,提取发生得非常快,因此数据可以立即获得.我不明白花了这么长时间.以下是日志中的一些信息:

2012-03-17 18:46:01.045 MakeMyApp[4571:207] numberOfSectionsInTableView: 1
2012-03-17 18:46:01.047 MakeMyApp[4571:207] numberOfRowsInSection: 0
2012-03-17 18:46:01.244 MakeMyApp[4571:1f03] numberOfSectionsInTableView: 1
2012-03-17 18:46:01.245 MakeMyApp[4571:1f03] numberOfRowsInSection: 20
2012-03-17 18:46:01.245 MakeMyApp[4571:1f03] Ok, I'm done. 20 objects in the array.
2012-03-17 18:46:01.246 MakeMyApp[4571:1f03] Finished XML processing.
2012-03-17 18:46:06.197 MakeMyApp[4571:1f03] cellForRowAtIndexPath:
Run Code Online (Sandbox Code Playgroud)

正如你所看到的那样,它会触发两次numberOfSectionsInTableView:/ numberOfRowsInSection:两次:第一次是视图加载时,第二种是当我加载时[self.tableView reloadData];

您可以看到,在不到一秒的时间内,数组将填充20个对象,并完成处理XML的所有工作.怎么在cellForRowAtIndexPath:5秒后被解雇?

以下是可能有助于发现问题的代码的一些部分:

- (void)createRequestFromXMLElement:(TBXMLElement *)element {
    // Let's extract all the information of the request
    int requestId = [[TBXML valueOfAttributeNamed:@"i" forElement:element] intValue];

    TBXMLElement *descriptionElement …
Run Code Online (Sandbox Code Playgroud)

sdk uitableview reloaddata ios tbxml

2
推荐指数
2
解决办法
4152
查看次数

在appWillEnterForeground上重新加载表

每当用户重新进入我的iphone应用程序时,我一直在尝试重新加载表格.表格的所有信息都是正确和正确的.该表正在输入正确的数据源和委托,我打印的值是我想要的,但在视觉上表格不会在视觉上重新加载.我的调用在appWillEnterForeground中,并且调用viewWillLoad.

uitableview reloaddata ios

1
推荐指数
1
解决办法
814
查看次数

self.tableView reloadData在viewWillAppear中不起作用

我有一个Xcode应用程序,它创建一个tableview,然后使用来自sqlite数据库的数据填充它,这非常有效,并允许我将数据推送到新视图并删除等,

此tableview是标签栏控制器上加载的第一个视图.当我移动到同一个控制器上的另一个视图,即创建一个运动员时,问题就出现了,在这个视图中我可以将新的运动员添加到数据库中(工作正常)但是当我回到标签栏控制器上的tableview时,表是一样的,我必须注销并重新登录才能看到表中的变化,

我在viewWillAppear函数中尝试了[self.tableView reloadData],但这没有做任何事情.我知道这个函数正在被调用,因为我已经将NSLog放在他们的内容中以便安心.

我已经找到了我认为可能是解决方案,但我无法让它工作!

viewWillAppear,viewDidAppear没有被调用,没有被触发

我将在下面发布我的代码和故事板的屏幕截图,因为我确信这是我设置控制器的不良方式导致了这个错误.任何帮助将非常感激,因为我现在处于崩溃阶段:D

-(void)viewWillAppear:(BOOL)animated {

//[super viewWillAppear:animated];

//[self.tabBarController viewWillAppear:animated];

[self.tableView reloadData];
NSLog(@"i just ran viewwillAppear");

}


- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {

athleteObject *athObj3 = [athletes objectAtIndex:indexPath.row];

athleteIdDelete = athObj3.athId;

[self openDatabase];

[self deleteAthleteFromDataBase];

[athletes removeObjectAtIndex:indexPath.row];

[tableView reloadData];

}
Run Code Online (Sandbox Code Playgroud)

reloadData在我的commitEditing函数中工作(当我通过滑动删除条目时,这会更新tableview)

任何帮助将不胜感激,il发布下面的屏幕截图.

(无法弄清楚如何加载屏幕截图)

xcode uitableview viewwillappear reloaddata

1
推荐指数
1
解决办法
8194
查看次数

iOS - UITableviewCell的子视图不重新加载/更新

我有一个表格视图,其中的单元格创建如下:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];

    cell.textLabel.text = @"TempTitle";

    cell.textLabel.font = [UIFont fontWithName: @"AppleSDGothicNeo-Bold" size:16.0];

    [cell setSelectionStyle:UITableViewCellSelectionStyleNone];

    UILabel *numberLabel = [[UILabel alloc] init];
    [numberLabel setFrame:CGRectMake(230.0, 5.0, 40.0, 30.0)];
    [numberLabel setText:[NSString stringWithFormat:@"%@", [self.arrayOne objectAtIndex:indexPath.row]]];

    UIButton *buttonDown = [[UIButton alloc] init];
    [buttonDown setFrame:CGRectMake(190.0, 5.0, 40.0, 30.0)];
    buttonDown.tag = indexPath.row;
    [buttonDown addTarget:self action:@selector(quantityDown:) forControlEvents:UIControlEventTouchUpInside];

    UIButton *buttonUp = [[UIButton alloc] init];
    [buttonUp setFrame:CGRectMake(270.0, 5.0, 40.0, 30.0)];

    [cell addSubview:buttonDown];
    [cell addSubview:numberLabel];
    [cell addSubview:buttonUp];

    return cell;
}
Run Code Online (Sandbox Code Playgroud)

where …

objective-c subview uitableview reloaddata ios

1
推荐指数
1
解决办法
5092
查看次数

如何在其他视图中重新加载TableView?

我在TableView中使用了一些CoreData基础。

当我尝试清除其他视图中的那些基础时,我的控制台日志中有一条消息。

CoreData:错误:严重的应用程序错误。在调用-controllerDidChangeContent:期间,从NSFetchedResultsController的委托捕获了一个异常。
无效的更新:部分0中的行数无效。更新(0)之后,现有部分中包含的行数必须等于更新(3)之前该部分中包含的行数,再加上或减去该数字从该部分插入或删除的行数(已插入0,已删除0),加上或减去移入或移出该部分的行数(移入0,移出0)。与userInfo(空)

用于删除CoreData数组我使用此代码

self.historyArray.removeAll()
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let managedContext = appDelegate.managedObjectContext
let fetchRequest = NSFetchRequest(entityName: "History")
fetchRequest.returnsObjectsAsFaults = false

do {
    let results = try managedContext.executeFetchRequest(fetchRequest)

    for managedObject in results
    {
        let managedObjectData:NSManagedObject = managedObject as! NSManagedObject 
        managedContext.deleteObject(managedObjectData)
    }
} catch {
    print("Detele all data")
}
Run Code Online (Sandbox Code Playgroud)

我知道我需要重新加载TableView,但是如何在其他View中执行此操作?虐待尝试过此,但此代码不起作用。

var tableViewHistoryClass = HistoryView()
self.tableViewHistoryClass.tableView.reloadData()
Run Code Online (Sandbox Code Playgroud)

请帮助我修复此消息。

core-data tableview reloaddata swift

1
推荐指数
1
解决办法
569
查看次数

uicollectionview-数据自动加载而无需调用reloaddata

我有两个问题。

  1. 我想知道为什么我的集合视图无需调用即可自动加载数据imageCollectionView.reloadData()

    解决了。查看评论

  2. 为什么func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize不叫?我没有看到print("collectionViewLayout called")我正在尝试修改单元格的大小,因此单元格的高度等于集合视图的高度

    解决了。查看评论

这是代码

class ProductInternalDetailVC: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate {

    var selectedProduct: Product?
    @IBOutlet weak var imageCollectionView: UICollectionView!

    override func viewDidLoad() {
        super.viewDidLoad()
        imageCollectionView.delegate = self
        imageCollectionView.dataSource = self
    }

    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return 2
    }

    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath as …
Run Code Online (Sandbox Code Playgroud)

reloaddata ios uicollectionview uicollectionviewcell swift

1
推荐指数
1
解决办法
433
查看次数