小编wil*_*lc2的帖子

如何在iPhone上访问比1秒更短的系统时间

系统时间函数时间(0)给出了1秒的分辨率,对吧?

是否有更细粒度的功能?

我用它来确定两个事件之间的时间间隔.

一行代码对我很有帮助.当我查看官方文档时,它可以更容易地将一些具体内容挂起来.

iphone time

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

如何在尊重图像的alpha蒙版的同时在UIImage上绘制形状

我需要一个可以根据标志用颜色或黑白绘制自己的UIImageView:

  BOOL isGrey;
Run Code Online (Sandbox Code Playgroud)

我试图通过在Quartz blendmode设置为Color的情况下在原始图像上绘制一个黑色矩形来实现.除非它不尊重图像的alpha蒙版,否则它可以正常工作.

见插图: 替代文字http://img214.imageshack.us/img214/1407/converttogreyscaleillo.png

搜索谷歌和SO,我发现并尝试了几种解决方案,但没有人尊重面具.

以下是生成上面"我得到的"图像的代码:

 - (void)drawRect:(CGRect)rect {

    if (isGrey) {
        CGContextRef context = UIGraphicsGetCurrentContext();

        // flip orientation
        CGContextTranslateCTM(context, 0, self.bounds.size.height);
        CGContextScaleCTM(context, 1.0, -1.0);

        // draw the image
        CGContextDrawImage(context, self.bounds, self.image.CGImage);

        // set the blend mode and draw rectangle on top of image
        CGContextSetBlendMode(context, kCGBlendModeSaturation);
        CGContextSetRGBFillColor(context, 0.0, 0.0, 0.0, 1.0);
        CGContextFillRect(context, rect);       
    } else {
        [self.image drawInRect:rect];
    }
}
Run Code Online (Sandbox Code Playgroud)

是否有一些我忘记设置的石英绘图模式?我通过Quartz编程指南看了一下,但很难从重叠和超链接的主题中提取出你需要的一点信息.

显然,我正在寻找适用于具有任何蒙版形状的图像的通用解决方案,而不仅仅是所示的圆圈.

iphone quartz-graphics uiimageview uiimage

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

当几个观点具有相同.TAG:使用-viewWithTag时,返回UIView的是什么?

假设我有4个UIViews,在IB中制作,所有标签属性= 2

当我得到一个视图:

 UIView *thisView = (UIView*)[self.view viewWithTag:2];
Run Code Online (Sandbox Code Playgroud)

检索UIView的标准是什么,因为有几个具有相同的.tag值?

是吗:

  • 随机
  • 第一个创建
  • 在其超级视图中具有最低索引的视图
  • 别的

iphone uiview

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

单元测试是否适合短程序

自从1983年开始编程以来,我不是新手,但我只对像Applescript,ARexx,HyperTalk和Bash这样的脚本语言有实际经验.

我编写脚本来自动化数据输入,批处理图像和转换文件格式.我涉足Processing,Ruby和Python.

我编写的大多数程序都在200行以下,最多有10个函数.我希望将来能够编写更大,更强大的程序.我想改进我的做法,以避免造成脆弱,不可维护的混乱.我工作的编程环境(Script Editor.app和Text Wrangler.app)不支持自动化测试.

当时我现在工作的规模写程序(不OO)的代码,是合适的编写单元测试,我的理解是:

在将各个功能组合成功能更强大的程序之前测试各个功能的简短程序.

在制作这种规模的节目时,单位测试是否值得花费

unit-testing

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

如何选择View和ViewController中的代码?

在Xcode中,Utility Application模板生成一个项目:

MainView,MainViewController

FlipsideView,FlipsideViewController

在我的应用程序中,两个视图对应于主UI和首选项屏幕.显然我希望prefs在主UI中反映并持久保存到磁盘以记住设置.我知道该怎么做.

问题是,在查看类似应用程序的示例代码时,我发现有些代码将大多数活动代码放在View中,而ViewController只是一个存根,而另一些则反过来.

在决定将我的大部分功能放在哪里时,是否有经验法则?

iphone cocoa-touch uiviewcontroller

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

我可以在不创建临时数组的情况下移动NSMutableArray中的对象吗?

我以为我有它,

void shiftArray(NSMutableArray *mutableArray, NSUInteger shift)
{
    for (NSUInteger i = 0; i < [mutableArray count]; i++) {
        NSUInteger newIndex = (i + shift) % [mutableArray count];
        [mutableArray exchangeObjectAtIndex:i withObjectAtIndex:newIndex];
    }
}
Run Code Online (Sandbox Code Playgroud)

当我换一个时,它将0,1,2,3,4变成0,2,3,4,1.

预期结果是4,0,1,2,3

我觉得我错过了一些明显的东西......

更新:感谢Matthieu,这就是我现在的功能.

void shiftArrayRight(NSMutableArray *mutableArray, NSUInteger shift) {
    for (NSUInteger i = shift; i > 0; i--) {
        NSObject *obj = [mutableArray lastObject];
        [mutableArray insertObject:obj atIndex:0];
        [mutableArray removeLastObject];
    }
}
Run Code Online (Sandbox Code Playgroud)

我不知道你可以制作一个通用的NSObject并在其中加入一些子类.它只是指针所以我猜它没关系,对吧?

很难打破将这些物体视为袋子的习惯,而不是指向袋子的指针.

arrays cocoa shift nsmutablearray

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

UISlider返回两个Touch Up Inside事件,为什么会这样?

我有一个滑块,我用它来设置某个浮动值.我将Value Changed连接到viewController中的方法.那部分工作正常.

我需要知道用户何时开始触摸控件但不一定是滑块更改的每一个瞬间(我收到了Value Changed事件).所以我将Touch Up Inside事件连接到viewController中的另一个方法.

问题是,当用户触摸UISlider控件时,该方法被调用两次.WTF?它与UIButton或其他触摸事件(如Touch Down)无关.

我认为,我可以解决它,但它似乎是滑块控件处理触摸的方式中的一个错误.有人知道它为什么会发生吗?

BTW:即使Touch Up Inside是唯一连接的事件,也会发生双触摸事件.

iphone cocoa-touch uislider

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

如何使Spotlight更容易找到自定义iOS应用程序

我在我的设备上写了很多小测试应用程序.是否有一些我可以添加到应用程序的元数据,以便在Spotlight搜索中更容易显示?

例如,我制作了一个名为Lavado的洗衣定时器应用程序

Lavado应用程序图标

当我搜索"计时器"或"洗衣店"时,我可以将它显示在Spotlight搜索中吗?

这不适用于Apple App Store,只适用于我的设备.

testing metadata spotlight ios

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

如何确定一个数字是否在另一个数字的百分比范围内

我正在编写 iPhone 代码,模糊地识别滑动的线是否是直线。我获取两个端点的方位角,并将其与 0、90、180 和 270 度进行比较,公差为正负 10 度。现在我用一堆 if 块来做这件事,这看起来超级笨重。

\n\n

如何编写一个函数,在给定方位角0..360公差百分比(例如 20% = (-10\xc2\xb0 到 +10\xc2\xb0))和直角(90 度)的情况下,返回是否轴承是否在公差范围内?

\n\n

更新: 也许我太具体了。我认为一个很好的通用函数可以确定一个数字是否在另一个数字的百分比范围内,在许多领域都有用处。

\n\n

例如:swipeLength数字是否在maxSwipe10%以内?那会有用的。

\n\n
 BOOL isNumberWithinPercentOfNumber(float firstN, float percent, float secondN) {\n      // dunno how to calculate\n }\n\n BOOL result;\n\n float swipeLength1 = 303; \n float swipeLength2 = 310; \n\n float tolerance = 10.0; // from -5% to 5%\n float maxSwipe = 320.0;\n\n result = isNumberWithinPercentOfNumber(swipeLength1, tolerance, …
Run Code Online (Sandbox Code Playgroud)

math angle gesture-recognition fuzzy-comparison

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

如何在具有多个参数的方法上使用performSelector:withObject:afterDelay:

假设我有一个带有此签名的方法:

 -(void)plotPoly:(Polygon *)poly WithColor:(UIColor *)color AndFill:(BOOL)filled;
Run Code Online (Sandbox Code Playgroud)

如何在那里获得UIColorBOOL以及Polygon

我应该将它们包装在NSArray中并将它们拉出被调用的方法吗?这意味着我必须改变方法sig,对吧?

有更优雅的方式吗?

cocoa cocoa-touch objective-c

5
推荐指数
2
解决办法
4230
查看次数