小编bit*_*com的帖子

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

初始化NSMutableString对象的最佳方法是什么?

如果我提出以下问题.初始化NSMutableString类的最佳方法是什么?(所有实例都将在意外时间返回...所以我假设初始化如下:)

  1. 如果我事先知道工作量.(预期)

    NSMutableString *str1 = [NSMutableString stringWithString:@""];
    NSMutableString *str2 = [NSMutableString stringWithCapacity:0];
    NSMutableString *str3 = [NSMutableString stringWithCapacity:1000];
    NSMutableString *str4 = [NSMutableString string];
    
    for(int i = 0; i< 1000; i++)
    {
        //The following tasks.(Adding to the string to continue working.)
        [/*str1~str4*/ appendFormat:@"%d", i];
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 如果我事先不知道工作量.(意外)

    NSMutableString *str1 = [NSMutableString stringWithString:@""];
    NSMutableString *str2 = [NSMutableString stringWithCapacity:0];
    NSMutableString *str3 = [NSMutableString stringWithCapacity:1000];
    NSMutableString *str4 = [NSMutableString string];
    
    for(int i = 0; i< /*a large of size(unpredictable)*/ ; i++)
    {
        //The following tasks.(Adding to …
    Run Code Online (Sandbox Code Playgroud)

iphone objective-c nsstring nsmutablestring

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

如何识别oneTap/doubleTap?

我知道使用Apple API过滤oneTap/doubleTap.代码如下.

UITapGestureRecognizer *doubleTapGestureRecognizer = [[UITapGestureRecognizer alloc]
                        initWithTarget:self action:@selector(handleDoubleTap:)];
doubleTapGestureRecognizer.numberOfTapsRequired = 2;


[self addGestureRecognizer:doubleTapGestureRecognizer];


UITapGestureRecognizer *singleTapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
singleTapGestureRecognizer.numberOfTapsRequired = 1;

**[singleTapGestureRecognizer requireGestureRecognizerToFail: doubleTapGestureRecognizer];**

[self addGestureRecognizer:singleTapGestureRecognizer];
Run Code Online (Sandbox Code Playgroud)

但oneTap/doubleTap checkDelayTime感觉如此之长(约0.5秒?).一般来说App的用户反应非常快.虽然0.5秒通常是短时间.但在移动设备环境中是长期的,因为用户的反应非常重要.

说到这一点,YouTubeApp在此输入图像描述有一个非常完美的算法,关于oneTap/doubleTap时刻的过滤.oneTap-doubleTap checkDelay是VeryVeryShort完美优化.

oneTap(show/hidden controlBar)

doubleTap(完整/默认videoScreenSize)

如何实现像YoutubeApp?关于oneTap-doubleTap过滤不使用requireGestureRecognizerToFail选择器.关于非常短的延迟oneTap-doubleTap区分.

我认为YoutubeApp不使用requireGestureRecognizer选择器.

iphone uigesturerecognizer

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

如何在UIWebview中启用水平滚动并禁用垂直滚动?

我的UIWebView不允许垂直滚动.但是,应该可以进行水平滚动.

我一直在查看文档,但找不到任何提示.

以下代码禁用两个滚动方向,但我只想禁用垂直:

myWebView.scrollView.scrollEnabled = NO;
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

iphone uiwebview uiscrollview

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

如何存储非id类型变量使用objc_getAssociatedObject/objc_setAssociatedObject?

我使用了一个类别,并将一些变量存储在UIView中.

但只存储了id类型,所以我真的不想要id类型(int,float,double,char ......等等)

如何编写代码?

#import <UIKit/UIKit.h>
#import <objc/runtime.h>

@interface UIView (CountClip)
@property (nonatomic, copy) NSString *stringTag;
@property (nonatomic) float offsetY;
@end
Run Code Online (Sandbox Code Playgroud)
#import "UIView+CountClip.h"

@implementation UIView (CountClip)

static NSString *kStringTagKey = @"StringTagKey";

- (NSString *)stringTag
{
    return (NSString *)objc_getAssociatedObject(self, kStringTagKey);
}
- (void)setStringTag:(NSString *)stringTag
{
    objc_setAssociatedObject(self, kStringTagKey, stringTag, OBJC_ASSOCIATION_COPY_NONATOMIC);
}

- (float)offsetY
{
    // how to write a correct code?
    return objc_getAssociatedObject(self, <#what is a code?#>);
}

- (void)setOffsetY:(float)offsetY
{
    // how to write a correct code?
    objc_setAssociatedObject(self, <#what is a …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c

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

如何用NSString标签识别视图?

view.tag仅存储NSInteger Value.

那么,如何用NSString Value识别每个视图?

不可用?

一些例子:

view0.stringTag = @"basic";

view1.stringTag = @"advanced";
Run Code Online (Sandbox Code Playgroud)

iphone nsstring

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