相关疑难解决方法(0)

在下一个运行循环上执行:GCD有什么问题?

我正在尝试这两种方法:

dispatch_async(dispatch_get_main_queue(),^{
    [self handleClickAsync];
});
Run Code Online (Sandbox Code Playgroud)

[self performSelector:@selector(handleClickAsync) withObject:nil afterDelay:0];
Run Code Online (Sandbox Code Playgroud)

响应按钮按下.

第二个允许UIButton突出显示正如人们期望的那样并handleClickAsync在下一个运行循环中执行(我想:"以后某个时候"肯定).第一个不允许UIButton实例在操作完成之前点亮.

使用GCD执行此操作的正确方法是什么,或者performSelector仍然是唯一的方法?

asynchronous objective-c grand-central-dispatch ios

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

首次加载时UICollectionView错误的contentSize,之后更正

我有一个常见的UICollectionView与分页和所有.

仍然试图找出viewDidLoad:,viewWillAppear:和viewDidAppear:上的原因,仅在第一次视图调用时,我在调用myCollectionView.collectionView.contentSize.width时得到了错误的大小.它始终以0宽度响应(高度总是正确的).连续重新加载视图让我得到正确的视图.

求助于使用

self.collectionView.collectionViewLayout.collectionViewContentSize
Run Code Online (Sandbox Code Playgroud)

在第一次加载时给我正确的宽度事件.

对我来说还是一个谜.

objective-c uicollectionview uicollectionviewlayout

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

uicollectionview在reloaddata之后立即选择一个项目?

调用-[UICollectionView reloadData]后需要一些时间才能显示单元格,因此在调用后立即选择项目reloadData不起作用.有没有办法立即选择一个项目reloadData

ios uicollectionview

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

UICollectionView visibleCells在滚动之前返回0

我有一个UICollectionView,我实现了延迟加载,

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
      [self loadImagesToVisiableCells];
}
Run Code Online (Sandbox Code Playgroud)

它运作良好.但是,问题是在任何滚动之前,第一个几个单元格显示占位符图像.所以我尝试在我的回调上调用loadImagesToVisiableCells来检索要在下面的UICollectionView中显示的json文件,

- (void)handleReceivedData: (NSArray*)results returnArrayOrDic:(NSNumber *)returnArrayOrDic{
    NSLog(@"***************************");
    NSLog(@"handleReceivedData has been called from PromotionViewController");
    NSLog(@"jsonArray Length:%d",[results count]);
    NSLog(@"jreturnArrayOrDic:%@",returnArrayOrDic);
    if([returnArrayOrDic boolValue] == YES){
      for(NSDictionary *dealDic in results) {
        NSLog(@"dealDic: %@", dealDic);
        //to populate the dealArray
        Deal *deal = [[Deal alloc] initWithDict:dealDic];
        [dealArray addObject:deal];
      }
      NSLog(@"%d deals have been populated to dealArray",[dealArray count]);
    }else{
      NSDictionary *jsonDictionary = (NSDictionary *)results;
      for(id key in jsonDictionary) {

        id value = [jsonDictionary objectForKey:key];

        NSString *keyAsString = (NSString *)key;
        NSString *valueAsString …
Run Code Online (Sandbox Code Playgroud)

lazy-loading ios uicollectionview uicollectionviewcell

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