如何使一个多行,左alignment的UIAlertView?

我有兴趣做一个左alignment的UIAlertView像几个公告列表,看起来像下面这样: 第1行 2号线 第3行 以下是我到目前为止: alert = [[UIAlertView alloc] initWithTitle: @"How to use buttons" message: @"line 1. line 2, line 3 " delegate: nil cancelButtonTitle: @"OK" otherButtonTitles: nil]; 我也想改变警报视图的颜色为红色。

如何在导航栏中添加页面指示器?

像twitter一样: 我在UITabBarController里面有一个PageViewController,它在UINavigationController里面。 任何人都可以告诉我如何显示导航栏内的页面指示器?

将UIImage转换为NSData而不使用UIImagePngrepresentation或UIImageJpegRepresentation

我需要将UIImage转换为NSData但不使用UIImagePngRepresentation或UIImageJpegRepresentation ,从photolib图像我可以使用这里提到的assetlib方法使用ALAssetsLibrary和ALAsset取出图像作为NSData ,但对于捕获的图像,assset url不存在,因此在这种情况下我需要将UIImage直接转换为带有exif数据的字节,我该如何做到这一点? 请帮忙

使用RSA在iOS上签名和validation

如何使用RSA密钥在iOS上签名和validation一些数据(最好使用系统自己的libcommonCrypto )?

Cocos2d处理与多个层次的触摸

我已经忙了几天,试图找出如何处理我的Cocos2d项目中的触摸。 情况与平时有点不同。 我有几个不同的游戏图层,上面有需要用触摸控制的项目: ControlLayer:控制游戏控制(移动,动作button)。 这一层在最上面。 GameplayLayer:保存游戏对象(CCSprites)。 这一层直接在ControlLayer下面。 现在我的Touch在ControlLayer中运行良好,我可以移动我的可玩angular色,让他跳起来做其他的傻事。 然而,我不能理解如何实施触及我的一些CCSprites。 到目前为止,我收集的信息让我觉得我需要从控制层获取所有触摸input。 然后,我需要将触摸信息“级联”到GameplayLayer,以便在那里处理input。 另一个select是我从我的精灵获取CGRect信息,通过创build一个指向应该可触摸的对象的指针的数组。 我应该能够使用ControlLayer中的信息来检查该列表中的每个项目是否被触摸。 什么是最好的select做到这一点,我该如何实现呢? 我是一种新的编程与cocoa和Objective C,所以我不知道什么是最好的select是这种语言,以及如何访问精灵CGRect信息([mySpriteName boundingBox])在另一个类,然后它是图层呈现。 目前唯一的方法,我一定要得到它的工作是为每个CCSprite位置创build重复的CGRects,所以我可以检查它们,但我知道这是不正确的做法。 我到目前为止(testing)是这样的:ControlLayer.m – (void)ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { UITouch *touch = [touches anyObject]; CGPoint location = [touch locationInView: [touch view]]; CGRect rect = CGRectMake(0.0f, 0.0f, 100.0f, 100.0f); //Tried some stuff here to get see if I could get […]

在iOS中实现表单的最佳实践是什么?

我需要创build几个屏幕表单,用于input数据并发布到服务器。 我还没有做过这样的东西,所以我只是想知道有没有什么最佳做法做到这一点。 目前,我只是放弃几个文本字段,收音机等,做一些手动inputvalidation,做一个input数据到URL的汇编,然后提交到服务器。 我在考虑可用性,所以我认为我应该在用户解散键盘后执行“移到下一个文本字段”(辞去第一个响应者)。 但是,如果所有的input已经被填充,并且用户改变了一个字段的值,那么只需导航到提交button。 所以,恕我直言,这可能是一个实践的forms实现的例子。 你有什么做法?

MAC地址在iOS 10.2中

它看起来像从iOS 10.2开始,现在苹果禁止访问所有的 MAC地址,而不仅仅是你自己的设备。 但是,在商店中有一些应用程序似乎仍然可以pipe理,例如.FG和Net Analyzer 。 这些仍然工作,因为它们是针对较旧的SDK进行编译的,还是有特殊的技巧来收集MAC地址? 任何人都可以共享一个解决scheme来获取iOS上的iOS 10.2设备的MAC地址?

我怎样才能使用自动布局(ios6 + ios7)4“和3.5”iphone屏幕的故事板?

关于构build可在4英寸和3.5英寸屏幕尺寸上工作的故事板布局,有许多问题和答案,但对于以下情形我找不到合适的解决scheme。 我使用ios6(和ios7)自动布局,我不必支持landscpae或ipad。 我有一个UIView有几个子视图,必须看起来像下面的模型。 在故事板中设置自动布局约束是很容易的,以适应任何一种屏幕尺寸。 我的问题是 – 如何使自动布局根据运行时的屏幕大小select正确的约束? 请注意,我不想使用2个不同的故事板。 在我的整个应用程序中这样做会是很多工作,我将不得不挂钩每个故事板上的所有代表,sockets和操作。 屏幕上的变化需要我做两倍的工作。 我已经尝试了2种方法使这个工作在一个故事板上,但是我对其中的任何一个都不满意。 加倍限制。 较大的约束(50)具有比较低的约束(30)更高的优先级。 这种方法的问题是,在3.5“的屏幕尺寸上,自动布局可能会select一个较低的优先级约束 – 足以满足布局 – 但留下一些高优先级的约束。 子类NSLayoutConstraint。 在这个方法中,故事板中的所有约束都被设置为NSDualLayoutConstraint。 在NSDualLayoutConstraint的初始化代码中,在运行时屏幕大小为3.5“的情况下,约束的常量更改为3_5_constant的值,但这种方法更具确定性,但在界面生成器预览中看不到3.5”布局。 如果只有界面生成器约束有一个次要的常量值,当屏幕大小为3.5“时,这将解决我的问题。所以我仍然与我的问题 – 我怎么才能正确地使用一个故事板布局子视图正确4“和3.5”屏幕尺寸?

UITableView DidSelectRowAtIndexPath?

我有几个项目(所有文本)的表格视图。 当用户单击该行时,我希望将该单元格中的文本添加到数组中。 我如何将文本从单元格中取出? 我已经有了: – (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { } 有一个简单的线我可以用来抓住用户点击单元格的文本?

UIViewanimation更改与自动布局约束

假设我有一个如下所示的项目: 有两个UIView – 一个叫做yellowBox ,另一个叫redBox 。 自动布局约束规定yellowBox距离超级视图的顶部60点,具有350点的前导和尾随空格(即,视图的左侧和右侧)。 redBox具有相同的前后空格限制。 在两个0的框之间有一个垂直空间约束,表示yellowBox框的底部应该总是直接在redBox顶部。 当用户点击展开黄色框button时,我想要增加黄色框的高度,结果, redBox向下移动以继续满足垂直空间限制( yellowBox始终位于redBox顶部)。 这里是animation代码: – (IBAction)expandYellowBox:(id)sender { [UIView animateWithDuration:0.5 animations:^{ CGRect newFrame = self.yellowBox.frame; newFrame.size.height += 50; self.yellowBox.frame = newFrame; }]; } 不过,我一直无法正常工作。 正如你可以看到红色的图标,目前有一个约束的问题: 这是公平的,因为没有办法让自动布局知道盒子的高度。 但是,我不知道如何解决这个问题,这样可以调整箱子的大小和移动。 例如,如果我在yellowBox上指定高度约束,那么将阻止它被resize。 如果我将高度约束设置为大于或等于 (允许yellowBox高度增加),那么我得到一个不同的约束错误: 所有约束条件都是在故事板中使用Xcodebuild立的 – 没有一个是用代码编写的。 任何帮助不胜感激。 编辑:事实certificate,button被点击时, yellowBox正在增长 – 这只是我不能说,因为它出现在redBox后面。 我只是四次点击后才注意到,它开始出现在redBox的底部。 然而,同样的问题仍然存在 – 如何让redBox始终坚持redBox的底部。