UIScrollViewDelegate有两个委托方法scrollViewDidScroll:
,scrollViewDidEndScrollingAnimation:
但这些方法都不能告诉你滚动完成的时间.scrollViewDidScroll
只通知您滚动视图确实滚动而不是滚动完成.
scrollViewDidEndScrollingAnimation
如果您以编程方式移动滚动视图而不是用户滚动,则另一种方法似乎只会触发.
有没有人知道滚动视图完成滚动时检测的方案?
将Core Data实体绑定到枚举值的最佳方法是什么,以便我能够为实体分配类型属性?换句话说,我有一个Item
带有itemType
属性的实体,我希望将其绑定到枚举,实现此目的的最佳方法是什么.
我有一个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) 为了使我的代码更容易阅读,我在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)
有人知道怎么做这个吗?或者即使有可能吗?
我正在尝试将文件上传到Google云端存储上的存储桶,但我无法弄清楚如何设置它以使其可公开写入和读取.换句话说,我不想要求用户进行身份验证以便上传到存储桶.有人知道要设置的步骤吗?
我还想知道我需要附加到我的请求标头以便将文件上传到此存储桶.我正在使用iOS API客户端,但如果有人知道原始标头是什么,我可以从中找出如何在iOS中进行操作.目前,我只包括以下额外标题:x-goog-project-id
google-api google-api-client google-cloud-storage google-cloud-platform
之前已经问过这个问题但是方式略有不同,我无法按照我想要的方式得到任何答案,所以我希望有很棒的核心动画技能可以帮助我.
我桌子上有一套卡片.当用户向上或向下滑动时,该组卡片在桌子上上下移动.在任何给定时间屏幕上都可以看到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)
这段代码有效,但它有以下问题我似乎无法弄清楚:
另外,请记住,我需要能够与卡的面部进行交互.即它上面有按钮.
如果有人遇到这些问题,那么看到你的解决方案会很棒.更好的方法是为动画添加一个透视变换,使其具有额外的真实感.
我想知道最有效的方法是制作带有图像的CALayer.
我知道你可以加载一个UIImage,然后调用[image CGImage],但这是最好的方法吗?据我所知,从Apple的文档中可以看出这是你能做到的唯一方法.
我有以下功能来查找和突出显示主题标签或提及(@或#)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) 我正在将一些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的背景设置为清晰?
而不是实现我自己,我想知道是否有人知道我可以使用Objective-C中的直方图或包数据结构实现.
本质上,直方图是列表的散列映射,其中列表包含与其散列条目相关的值.一个很好的例子是超市物品的直方图,您可以将每组物品放入奶瓶,肉类,罐头食品中.然后,您可以根据其类型轻松访问每组项目.
iphone ×5
ios ×4
objective-c ×4
cocoa-touch ×2
swift ×2
uiimage ×2
uiscrollview ×2
bag ×1
caanimation ×1
calayer ×1
cgimage ×1
closures ×1
cocoa ×1
core-data ×1
emoji ×1
google-api ×1
histogram ×1
multimap ×1
regex ×1
syntax ×1
uiview ×1