小编Mic*_*ord的帖子

如何检测UIScrollView何时完成滚动

UIScrollViewDelegate有两个委托方法scrollViewDidScroll:,scrollViewDidEndScrollingAnimation:但这些方法都不能告诉你滚动完成的时间.scrollViewDidScroll只通知您滚动视图确实滚动而不是滚动完成.

scrollViewDidEndScrollingAnimation如果您以编程方式移动滚动视图而不是用户滚动,则另一种方法似乎只会触发.

有没有人知道滚动视图完成滚动时检测的方案?

iphone uiscrollview ios

140
推荐指数
9
解决办法
11万
查看次数

使用Core Data实现Enums的最佳方式

将Core Data实体绑定到枚举值的最佳方法是什么,以便我能够为实体分配类型属性?换句话说,我有一个Item带有itemType属性的实体,我希望将其绑定到枚举,实现此目的的最佳方法是什么.

iphone cocoa cocoa-touch core-data objective-c

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

UIScrollView中的优化图像加载

我有一个UIScrollView,其中包含一组并排加载的图像.你可以在这里看到我的应用程序的一个例子:http://www.42restaurants.com.我的问题在于内存使用情况.我想懒得加载图像,因为它们即将出现在屏幕上并卸载不在屏幕上的图像.正如您在代码中看到的那样,我至少需要加载哪个图像,然后将加载部分分配给NSOperation并将其放在NSOperationQueue上.除了生涩的滚动体验之外,一切都很棒.

我不知道是否有人有任何关于如何使其更加优化的想法,以便每个图像的加载时间最小化或使滚动不那么生涩.

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
    [self manageThumbs];    
}

- (void) manageThumbs{
    int centerIndex = [self centerThumbIndex];
    if(lastCenterIndex == centerIndex){
        return;
    }

    if(centerIndex >= totalThumbs){
        return;
    }

    NSRange unloadRange;
    NSRange loadRange;

    int totalChange = lastCenterIndex - centerIndex;
    if(totalChange > 0){ //scrolling backwards
        loadRange.length = fabsf(totalChange);
        loadRange.location = centerIndex - 5;
        unloadRange.length = fabsf(totalChange);
        unloadRange.location = centerIndex + 6;
    }else if(totalChange < 0){ //scrolling forwards
        unloadRange.length = fabsf(totalChange);
        unloadRange.location = centerIndex - 6;
        loadRange.length = fabsf(totalChange);
        loadRange.location = …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c uiscrollview uiimage

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

如何在Swift中"生成"闭包类型别名?

为了使我的代码更容易阅读,我在Swift中使用类型别名用于各种类型的闭包.我有以下基本的闭包:

public typealias FailureClosure = (error: NSError?) -> Void
public typealias ProgressClosure = (progress: Float32) -> Void
public typealias BasicClosure = () -> Void
Run Code Online (Sandbox Code Playgroud)

我想添加一个typealias支持通用数组的闭包,但我似乎无法弄清楚它的语法.这是我能够得到的,但我得到编译时错误" 使用未声明的类型'T' "

public typealias ArrayClosure = <T>(array:[T]?) -> Void
Run Code Online (Sandbox Code Playgroud)

有人知道怎么做这个吗?或者即使有可能吗?

syntax closures ios swift

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

如何设置公共Google云端存储分区

我正在尝试将文件上传到Google云端存储上的存储桶,但我无法弄清楚如何设置它以使其可公开写入和读取.换句话说,我不想要求用户进行身份验证以便上传到存储桶.有人知道要设置的步骤吗?

我还想知道我需要附加到我的请求标头以便将文件上传到此存储桶.我正在使用iOS API客户端,但如果有人知道原始标头是什么,我可以从中找出如何在iOS中进行操作.目前,我只包括以下额外标题:x-goog-project-id

google-api google-api-client google-cloud-storage google-cloud-platform

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

如何在同时切换子视图的同时围绕x轴翻转UIView

之前已经问过这个问题但是方式略有不同,我无法按照我想要的方式得到任何答案,所以我希望有很棒的核心动画技能可以帮助我.

我桌子上有一套卡片.当用户向上或向下滑动时,该组卡片在桌子上上下移动.在任何给定时间屏幕上都可以看到4张卡片,但只有第二张卡片显示其面部.当用户滑动时,第二张卡片翻转回到其脸部,并且下一张卡片(取决于滑动方向)落在其显示其脸部的位置.

我已经设置了我的卡片视图类:

@interface WLCard : UIView {
    UIView *_frontView;
    UIView *_backView;
    BOOL flipped;
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用这段代码翻转卡片:

- (void) flipCard {
    [self.flipTimer invalidate];
    if (flipped){
        return;
    }

    id animationsBlock = ^{
            self.backView.alpha = 1.0f;
            self.frontView.alpha = 0.0f;
            [self bringSubviewToFront:self.frontView];
            flipped = YES;

            CALayer *layer = self.layer;
            CATransform3D rotationAndPerspectiveTransform = CATransform3DIdentity;
            rotationAndPerspectiveTransform.m34 = 1.0 / 500;
            rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, M_PI, 1.0f, 0.0f, 0.0f);
            layer.transform = rotationAndPerspectiveTransform;
    };
    [UIView animateWithDuration:0.25
                          delay:0.0
                        options: UIViewAnimationCurveEaseInOut
                     animations:animationsBlock
                     completion:nil];

}
Run Code Online (Sandbox Code Playgroud)

这段代码有效,但它有以下问题我似乎无法弄清楚:

  1. 横跨x轴的卡片只有一半是动画的.
  2. 翻转后,卡的表面倒置并镜像.
  3. 一旦我翻转卡片,我就无法让动画再次运行.换句话说,我可以根据需要多次运行动画块,但只有第一次才能生成动画.随后我尝试动画导致子视图之间的淡入淡出.

另外,请记住,我需要能够与卡的面部进行交互.即它上面有按钮.

如果有人遇到这些问题,那么看到你的解决方案会很棒.更好的方法是为动画添加一个透视变换,使其具有额外的真实感.

cocoa-touch core-animation objective-c caanimation ios

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

最有效的方法来创建一个带有图像的CALayer?

我想知道最有效的方法是制作带有图像的CALayer.

我知道你可以加载一个UIImage,然后调用[image CGImage],但这是最好的方法吗?据我所知,从Apple的文档中可以看出这是你能做到的唯一方法.

iphone calayer uiimage cgimage

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

如何在Swift中包含emojis的字符串中突出显示文本?

我有以下功能来查找和突出显示主题标签或提及(@或#)UILabel:

class func addLinkAttribute(pattern: String,
        toText text: String,
        withAttributeName attributeName : String,
        toAttributedString attributedString :NSMutableAttributedString,
        withLinkAttributes linkAttributes: [NSObject : AnyObject]) {
        var error: NSError?
        if let regex = NSRegularExpression(pattern: pattern, options:.CaseInsensitive, error: &error) {
            regex.enumerateMatchesInString(text, options: .allZeros, range: NSMakeRange(0, count(text))) { result, flags, stop in
                let range = result.range
                let start = advance(text.startIndex, range.location)
                let end = advance(start, range.length)
                let foundText = text.substringWithRange(Range<String.Index>(start: start,end: end))
                var linkAttributesWithName = linkAttributes
                linkAttributesWithName[attributeName] = foundText
                attributedString.addAttributes(linkAttributesWithName, range: range)
            }
        }
    } …
Run Code Online (Sandbox Code Playgroud)

regex ios emoji swift

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

设置UIView的背景颜色增加内存使用量

我正在将一些UIViews加载到UIScrollView上,并试图找出他们为什么要使用这么多内存.在使用Instruments消除过程之后,我发现设置视图的背景颜色会使内存使用量增加4倍.

如果我没有设置背景颜色,则内存使用量约为4.5美分.一旦我将背景颜色设置为任何redColor或clearColor,内存使用量就会跳至17megs.

这是代码:

ThumbnailView *thumbView = [[ThumbnailView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 225.0f, 320.0f)];
thumbView.tag = aCounter;
thumbView.backgroundColor = [UIColor clearColor];
Run Code Online (Sandbox Code Playgroud)

有谁知道是什么原因引起的?

我真正追求的是背景清晰.如果没有办法解决这个问题,是否还有另一种方法可以将UIView的背景设置为清晰?

iphone memory-management background-color uiview

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

Objective-C实现直方图或包数据结构

而不是实现我自己,我想知道是否有人知道我可以使用Objective-C中的直方图或包数据结构实现.

本质上,直方图是列表的散列映射,其中列表包含与其散列条目相关的值.一个很好的例子是超市物品的直方图,您可以将每组物品放入奶瓶,肉类,罐头食品中.然后,您可以根据其类型轻松访问每组项目.

objective-c histogram multimap bag data-structures

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