草庐IT

cocoa-touch

全部标签

ios - 在 Cocoa Touch 中实现去抖动/合并模式,例如 `layoutSubviews`

许多CocoaTouch类利用合并事件的设计模式。例如,UIViews有一个方法setNeedsLayout,它会在不久的将来调用layoutSubviews。这在许多属性影响布局的情况下特别有用。在每个属性的setter中,您可以调用[selfsetNeedsLayout]这将确保布局将被更新,但如果同时更改多个属性甚至会阻止对布局的许多(可能昂贵的)更新如果在运行循环的一次迭代中多次修改单个属性。其他昂贵的操作,如setNeedsDisplay和drawRect:这对方法遵循相同的模式。实现这种模式的最佳方法是什么?具体来说,我想将一些依赖属性绑定(bind)到一个昂贵的方法,如果

iOS 8——对导航栏和状态栏应用模糊

我正在尝试为导航栏和状态栏添加模糊效果。我的问题是导航栏上的模糊效果很好,但状态栏不会模糊。我的问题是:如何扩展边界以包含状态栏?我正在使用以下方法来创建模糊效果:-(void)addBlurEffect{CGRectbounds=self.navigationController.navigationBar.bounds;UIVisualEffectView*visualEffectView=[[UIVisualEffectViewalloc]initWithEffect:[UIBlurEffecteffectWithStyle:UIBlurEffectStyleLight]];vi

ios - UIButton 水平居中,自动换行

我在容器(UIView)中有两个UIButton。它们都有相同的选项(按钮标题除外):但是当我在iPhone5S上启动这个应用程序时,我得到如下结果:我的问题是:为什么第一个按钮有水平居中的文本而第二个按钮没有?我希望他们都将标题水平居中。您好,帕维尔 最佳答案 实际上,您的第一个按钮居中只是因为它的标题中有较短的单词。如果将第二个按钮的标题设置为第一个按钮,您将获得相同的结果。需要通过代码设置文本对齐方式,使标题居中:[button.titleLabelsetTextAlignment:NSTextAlignmentCenter]

ios - 无法在 Google 开发者控制台上创建新项目

我正在尝试在谷歌开发者控制台上创建一个新项目,该项目反复抛出错误“错误请求” 最佳答案 问题解决了。登录后,我首先删除了所有现有项目,然后我立即创建了一个抛出错误的项目。基本上,您必须创建新项目,如果您删除了项目,则必须等待一段时间。 关于ios-无法在Google开发者控制台上创建新项目,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/29536086/

ios - 如何使用 3d touch 从主屏幕的多个小部件中选择一个?

当我只使用一个今天的小部件时,它非常简单,就像这样:现在我在我的应用程序中添加了第二个今天小部件,它是这样的:为什么消失了?怎么了?不应该有两个今天的小部件吗?我可以在这里决定应该首选哪个小部件吗?苹果说:Chooseawidgetforthequickactionlist.Ifyourapphasmultiplewidgets,pickonetoappearinthequickactionmenuthatappearswhensomeoneappliespressuretoyourappiconontheHomescreenusing3DTouch.但是在哪里做呢?是用户站点还是开发

ios - 使用宏检测 iPhone X

这个问题在这里已经有了答案:DetectifthedeviceisiPhoneX(38个答案)关闭5年前。如何检测在iPhoneX上运行?我尝试了以下代码。#defineIS_IPHONE(UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPhone)#defineSCREEN_WIDTH([[UIScreenmainScreen]bounds].size.width)#defineSCREEN_HEIGHT([[UIScreenmainScreen]bounds].size.height)#defineSCREEN_MAX_LENGTH(M

ios - 在 Cocoa 中以编程方式创建 NSView

我习惯于为iOS编程,并且我已经非常习惯于UIViewController。现在,我正在创建一个OSX应用程序,我有一些关于最佳实践的一般性问题。在UIViewController中,我通常在-(void)viewDidLoad方法中设置我的View-我实际上并没有创建自定义UIView对于UIViewController除非它真的需要-所以UIViewController将View添加到它自己的View,删除它们,为它们设置动画等等-首先,这是好的做法吗?对于我的主要问题-OSX中的最佳实践是什么?我喜欢以编程方式创建界面,并且更喜欢这种方式。如果我说创建一个新的自定义窗口并想要管理

ios - iOS本地通知每天有限制吗?

我正在开发一个应用程序,我需要每天向用户发送大量通知。大约5-40,具体取决于用户。我正在使用本地通知发送它,但我知道有64个通知限制。这是否意味着每天或总共有64条通知? 最佳答案 这意味着同时计划将来交付。您每天可以发送任意数量的邮件,前提是它们不会重叠。如果您添加超过64个请求(在UserNotifications下)或计划(在UIApplication/UILocalNotification下),较早的请求将被丢弃并且未交付。 关于ios-iOS本地通知每天有限制吗?,我们在St

ios - 使用 Game Center 验证 GKLocalPlayer

我正在尝试使用GameCenter验证GKLocalPlayer。但是,Apple提供的代码-(void)authenticateLocalPlayer{[[GKLocalPlayerlocalPlayer]authenticateWithCompletionHandler:^(NSError*error){if(error==nil){//Insertcodeheretohandleasuccessfulauthentication.NSLog(@"Loggedin.");}else{//Yourapplicationcanprocesstheerrorparametertorepo

ios - 在 View 中绘制多个 UIBezierPath

我正在基于手指移动在View上绘制多个UIBezierPath。每次触摸循环(开始/移动/结束)完成时,我都会存储这些点并创建一个UIBezierPath,它存储在一个名为bezierArray的数组中.我有另一个名为bezierArrayColors的数组,它存储每条路径的颜色。问题是这样的。该类使用drawRect。据我所知,每次drawRect运行时,它都必须绘制所有已创建的路径,并且应用程序现在很慢。现在这是我的drawRect。我知道这很蹩脚,但我不知道如何做到这一点。-(void)drawRect:(CGRect)rect{for(inti=0;i有没有一种方法可以使用子路