小编hpi*_*que的帖子

在哪里突出显示UICollectionViewCell:委托还是单元格?

根据Collection View编程指南,应该处理单元格高光的视觉状态UICollectionViewDelegate.像这样:

- (void)collectionView:(PSUICollectionView *)collectionView didHighlightItemAtIndexPath:(NSIndexPath *)indexPath
{
    MYCollectionViewCell *cell = (MYCollectionViewCell*)[collectionView cellForItemAtIndexPath:indexPath];
    [cell highlight];
}

- (void)collectionView:(UICollectionView *)collectionView didUnhighlightItemAtIndexPath:(NSIndexPath *)indexPath
{
    MYCollectionViewCell *cell = (MYCollectionViewCell*)[collectionView cellForItemAtIndexPath:indexPath];
    [cell unhighlight];
}
Run Code Online (Sandbox Code Playgroud)

我不喜欢这种方法的是它为委托添加了非常特定于单元格的逻辑.事实上,UICollectionViewCell通过highlighted财产独立管理其突出显示的状态.

那么,压倒一切setHighlighted:不是一个更清洁的解决方案吗?

- (void)setHighlighted:(BOOL)highlighted
{
    [super setHighlighted:highlighted];
    if (highlighted) {
        [self highlight];
    } else {
        [self unhighlight];
    }
}
Run Code Online (Sandbox Code Playgroud)

这种方法有没有缺点而不是委托方法?

ios ios6 uicollectionview uicollectionviewcell

34
推荐指数
5
解决办法
3万
查看次数

在iOS上隐藏状态栏的正确方法,包括动画和调整根视图的大小

考虑一个视图控制器,当单击按钮时需要滑出(或隐藏)状态栏.

- (void) buttonClick:(id)sender
{
    [[UIApplication sharedApplication] setStatusBarHidden:YES
                                            withAnimation:UIStatusBarAnimationSlide];
}
Run Code Online (Sandbox Code Playgroud)

上面有效地隐藏了状态栏,但没有适当调整根视图的大小,在顶部留下20像素的间隙.

我期望的是根视图扩展到以前状态栏使用的空间(动画,持续时间与状态栏动画相同).

这样做的正确方法是什么?

(我知道有很多类似的问题,但我找不到任何关于按需隐藏状态栏而不是隐藏它以显示新的视图控制器)

"蛮力"的做法

显然,以下作品......

[[UIApplication sharedApplication] setStatusBarHidden:YES
                                        withAnimation:UIStatusBarAnimationSlide];
[UIView animateWithDuration:0.25 animations:^{
    CGRect frame = self.view.frame;
    frame.origin.y -= 20;
    frame.size.height += 20;
    self.view.frame = frame;
}];
Run Code Online (Sandbox Code Playgroud)

......但有缺点:

  • 硬编码幻灯片动画的持续时间
  • 硬编码状态栏的高度
  • 根视图原点保持在(0,-20).我喜欢我的框架尽可能从(0,0)开始.

我已经尝试过了什么

  • 确保根视图的autoresize掩码具有UIViewAutoresizingFlexibleTopMarginUIViewAutoresizingFlexibleHeight.
  • [self.view setNeedsLayout]隐藏状态栏后调用.
  • [self.view setNeedsDisplay]隐藏状态栏后调用.
  • 设置wantsFullScreenLayoutYES隐藏状态栏之前和之后.

iphone statusbar uiviewcontroller ios uistatusbar

33
推荐指数
4
解决办法
3万
查看次数

进入后台状态时关闭UIAlertViews

Apple建议UIAlertViews/UIActionSheets在iOS 4中进入后台状态时解除任何一个状态.这是为了避免用户在以后重新启动应用程序时出现任何混淆.我想知道如何能够立刻优雅地解雇所有UIAlertViews,而不是每次我设置它时都不保留对它的引用...

任何的想法 ?

background uialertview uiactionsheet ios4 ios

31
推荐指数
7
解决办法
3万
查看次数

onPostExecute取消了AsyncTask

onPostExecute如果AsyncTask取消了会执行吗?

如果它确实执行了,是否可以安全地说我应该isCancelled在开始onPostExecute之前询问任务是否已被取消(),然后再做其他事情?

multithreading android android-asynctask

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

Disable WebView touch events in Android

How do you disable all touch events in an Android WebView (or scrolling in particular)? I would like the activity to handle all touch events.

android touch webview

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

使用CGAffineTransform缩放并设置锚点

如果我理解正确的缩放UIViewCGAffineTransform锚改造中心.

特别是:

self.frame = CGRectMake(0,0,100,100);
self.transform = CGAffineTransformMakeScale(2, 2);
NSLog(@"%f;%f;%f;%f", self.frame.origin.x, self.frame.origin.y, self.frame.size.width, self.frame.size.height); 
Run Code Online (Sandbox Code Playgroud)

打印:

-50;-50;200;200
Run Code Online (Sandbox Code Playgroud)

如何创建使用特定锚点(例如0; 0)的CGAffineTransform比例?

iphone scaling cgaffinetransform ios

30
推荐指数
2
解决办法
6万
查看次数

在Android中从视图/屏幕创建图像

是否可以从Android中的视图或屏幕创建位图图像?

android bitmap

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

同步版本的异步方法

在Java中创建异步方法的同步版本的最佳方法是什么?

假设你有一个使用这两种方法的类:

asyncDoSomething(); // Starts an asynchronous task
onFinishDoSomething(); // Called when the task is finished 
Run Code Online (Sandbox Code Playgroud)

如何doSomething()在任务完成之前实现不返回的同步?

java asynchronous synchronous

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

Objective-C中的static,extern和inline

做什么static,extern并且inline(和它们的组合)使用LLVM编译器Objetive-C是什么意思?

另外,我注意到有CG_EXTERNCG_INLINE宏.我们应该使用那些吗?

(我找不到一个有明确解释的来源,所以我认为在这里创建一个可能有用,或者如果有人知道它可能会指向它)

static inline objective-c llvm extern

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

使用正则表达式添加前导零

我想在字符串的所有数字中添加一定数量的前导零(最多3个).例如:

输入: /2009/5/song 01 of 12

输出: /2009/0005/song 0001 of 0012

使用正则表达式执行此操作的最佳方法是什么?

编辑:

我选了第一个正确答案.但是,所有答案都值得一读.

regex language-agnostic

27
推荐指数
2
解决办法
3万
查看次数