草庐IT

cocoa-design-patterns

全部标签

objective-c - Cocoa Touch - 自定义 UIButton 形状

如何使可触摸按钮区域与提供的图像形状相同?假设我有一个带有三角形图像的自定义按钮,我如何才能确保只处理该三角形内的触摸。或者我必须在触摸Action功能中做一些数学运算吗? 最佳答案 OBShapedButton是一个很棒的项目它通过子类化UIButton并覆盖-pointInside:withEvent:来工作@implementationOBShapedButton//UIViewusesthismethodinhitTest:withEvent:todeterminewhichsubview//shouldreceiveato

cocoa - 尝试查看 .xcdatamodel 时 XCode 崩溃

我有一个由CoreData支持的应用程序,我已经开发了一段时间。我使用版本控制(以前是SVN,现在是Git)在不同的Mac之间移动它。前几天,我无法打开该项目。哦废话。幸运的是,由于有了TimeMachine,我能够回到过去,并恢复到较早的版本。我怀疑XCode项目文件或CoreData文件的某些东西在这里起作用(我猜我遇到了thisguy做的一些问题),但一切似乎都在工作,所以我继续前进。但是现在,我意识到当我尝试在XCode中打开.xcdatamodel文件时,我做不到。它只是挂起,然后我结束强制退出。除此之外,该应用程序运行良好。我可以将它部署到模拟器或设备上并且它可以工作。但我

cocoa-touch - iOS 获取类似 ActionSheet 的按钮

我有一个iOSiPhone应用程序,我需要在操作表之外使用操作表样式的按钮。我说的是这些按钮:我见过eBayiPhone应用程序执行此操作,然后将该按钮染成蓝色,但我就是不知道该怎么做。我已经为此思考和谷歌搜索了好几天了。任何帮助将不胜感激! 最佳答案 我过去曾使用预制的photoshopPSD来实现这种效果。到目前为止我最喜欢的是http://www.teehanlax.com/blog/2010/06/14/iphone-gui-psd-v4/ 关于cocoa-touch-iOS获取

cocoa - 第二次将观察者添加到 NSNotificationCenter 导致 EXC_BAD_ACCESS

假设场景:在我的viewDidLoad方法中,我将ViewController添加为自定义通知的观察者(例如,通知MyFooNotification)。稍后在加载View的过程中,通知被发布并且Controller处理它。当我离开Controller时,我不会(有意地)在viewDidUnload中移除观察者。下次打开View时,会再次添加观察者,但现在当发布观察到的通知时-我得到EXC_BAD_ACCESS。谁能解释为什么会这样。附言我知道我应该在viewDidUnload中删除它我只是对较低级别的细节感到好奇。 最佳答案 很可能

objective-c - 在 iOS Cocoa 中覆盖非透明像素

iOSSDK有没有办法用彩色像素覆盖图像中的非透明像素?非常感谢两位的回答。我实现的最终解决方案使用子类UIView的drawRect方法中接受的答案中提到的代码,我使用以下代码覆盖颜色:CGContextSetFillColor(context,CGColorGetComponents([UIColorcolorWithRed:0.5green:0.5blue:0alpha:1].CGColor));CGContextFillRect(context,area); 最佳答案 我认为您可能正在寻找混合模式kCGBlendModeSo

objective-c - 如何从文件名不是 URL 一部分的 URL 下载文件(iOS/Cocoa SDK)

我想知道如何在文件名不可用或不属于请求URL的情况下使用NSUrl下载文件。我一直在查看ASIHTTPRequest(http://allseeing-i.com/ASIHTTPRequest/)库。它有ASIHTTPRequest*request=[ASIHTTPRequestrequestWithURL:url];[requestsetDownloadDestinationPath:@"/Users/ben/Desktop/my_file.txt"];但关键是你需要知道这里的文件名。例如,如果您输入URL(不是真实的URL)http://some-website/foo.pdf它下

cocoa-touch - 如何重命名 infoplist.strings 文件?

这个问题在这里已经有了答案:XCode-Multipletargets,Multiple*internationalized*names?(1个回答)关闭2年前。是否可以为infoplist.strings文件使用其他名称?我的问题:我想创建多个具有不同本地化应用程序名称的目标。

cocoa-touch - 用于 VPN 的 iOS 专用 API

我正在寻找一些私有(private)API来启动在“设置”应用中配置的VPN连接。有人对我在哪里可以找到它们有什么建议吗?我唯一找到的是ManagedConfiguration.framework。这是正确的起点吗?没有任何文档有点困难:-/附言我知道私有(private)api不能在iTunesStore等上。这仅供私有(private)使用。 最佳答案 iOS8.0现在包含网络扩展框架。它没有记录在developer.apple.com上,但在“功能”Pane中,您只需打开“个人VPN”,它就会为您添加到项目中……然后您可以浏览

ios - 使用 Xcode storyboard 导致 Xcode 卡住,Interface Builder Cocoa Touch Tool 飙升至 %99

我正在使用Xcode6.0.1开发iOS8应用程序,但我遇到了一个新错误,这是我在使用Xcode5和iOS7时从未遇到过的错误:当我使用StoryBoardBuilder时,Xcode经常死机与旋转的厄运沙滩球(或他们所说的任何东西)一起。有时,只需要在ViewController中移动一个对象就可以引起这种情况。我注意到,当这个错误发生时,我的事件监视器显示“InterfaceBuilderCocoaTouchTool”进程的%CPU值在98到100之间!我必须强制退出此过程并强制关闭Xcode(无响应)。然而,这并没有解决问题,因为当我稍后再次使用Storyboard时它又回来了,

iphone - 当我在 Cocoa Touch 中加载一个新 View 时,它会将所有内容向上移动大约 20 像素

好的,如图所示,我有一个主屏幕,上面有一个名为“歌曲”的按钮。按下此按钮时,它会加载一个新的Nib以及.h和.m文件,如中间图片所示。然后后退按钮将我们带回主菜单。问题是当我加载新View时,它会将所有内容向上移动20像素(大约是状态栏的大小)。有谁知道这是为什么。让我知道。我也可以提供代码。 最佳答案 我以前遇到过这个问题。我可以补救的唯一方法是将我创建的每个新View设置为屏幕大小。这是我的做法:CGRectfullFrame=[[UIScreenmainScreen]applicationFrame];self.view.fr