小编mem*_*ons的帖子

从contentViewController中解除UIPopoverController?

如果你想解雇一个弹出窗口 - 例如,从popover的contentViewController中的一个按钮你必须 -

  1. 创建一个对由创建它的视图控制器持有的弹出框的引用
  2. 从contentViewController创建一个通知,让拥有的视图控制器知道它应该被解雇,或者为了相同的目的创建一个委托
  3. 当弹出框准备好被解雇时发送通知或委托消息
  4. 调用dismissPopover:animated通知或委托方法时调用

同时,UIViewController您可以访问模态视图控制器,父视图控制器,导航控制器,拆分视图控制器,标签栏控制器,搜索显示控制器,子视图控制器,呈现视图控制器和呈现的视图控制器.

从popover的contentViewController有更好的方法吗?

iphone cocoa-touch uipopovercontroller ios

26
推荐指数
1
解决办法
5405
查看次数

Xcode 4项目:用于清理pbxproj文件的实用程序?

我有一个带有2个目标的Xcode 4项目,一个用于iPhone,另一个用于iPad.如果我点击iPad目标并尝试转到Build Settings Xcode 4崩溃:

遇到多个断言.第一个断言是:/SourceCache/IDEXcode3ProjectSupport/IDEXcode3ProjectSupport-269/Xcode3Sources/XcodeIDE/Frameworks/DevToolsBase/pbxcore/FileTypes/../PBXFileType.m:594中的ASSERTION FAILURE:文件名应该是非空字符串,但它是零

显然pbxproj文件在某处有一个错误的引用 - 可能是由于我被git强制执行的许多手动合并引起的.有没有办法清理pbxproj文件,以便它再次正常工作或告诉哪一行导致问题?我真的真的不喜欢必须从头创建项目.

xcode xcode4

24
推荐指数
4
解决办法
2万
查看次数

我如何模拟Apple Watch用于开发目的?

我刚刚下载了Xcode 6 GM,我想看看我的应用程序如何与连接到模拟iPhone的Apple Watch一起使用.

如何在MacBook上模拟这个新设备?

xcode ios-simulator apple-watch watchkit

21
推荐指数
3
解决办法
3万
查看次数

使用UIStackView动态UITableView行高?

令人惊讶的是这不是开箱即用的,因为这似乎是堆栈视图的一个重要用例.我有一个UITableViewCell子类,它将一个UIStackView添加到contentView.我正在向堆栈视图中添加标签,tableView(_cellForRowAtIndexPath:)并且tableview设置为使用动态行高,但它似乎不起作用,至少在Xcode 7.3中.我还认为隐藏在堆栈视图中的已安排的子视图是可动画的,但这似乎也被打破了.

有关如何使其正常工作的任何想法?

破碎的动态排高度

class StackCell : UITableViewCell {
    enum VisualFormat: String {
        case HorizontalStackViewFormat = "H:|[stackView]|"
        case VerticalStackViewFormat = "V:|[stackView(>=44)]|"
    }

    var hasSetupConstraints = false
    lazy var stackView : UIStackView! = {
        let stack = UIStackView()
        stack.axis = .Vertical
        stack.distribution = .FillProportionally
        stack.alignment = .Fill
        stack.spacing = 3.0
        stack.translatesAutoresizingMaskIntoConstraints = false
        return stack
    }()

    override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
        contentView.addSubview(stackView)
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented") …
Run Code Online (Sandbox Code Playgroud)

xcode uitableview ios autolayout uistackview

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

Xcode故事板:为什么iPad故事板会显示iPhone大小的视图?

我有一个使用故事板的通用应用程序.有一个iPhone故事板和一个iPad故事板.但是,在界面构建器中,iPad故事板的视图控制器仍然适合iPhone.如何让iPad故事板显示iPad大小的视图控制器?

我意识到界面构建器中的视图控制器显示只是设计时间的眼睛,但拥有iPhone大小的VC使得很难正确布局UI.

xcode interface-builder storyboard ios

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

如何在Xcode的自动完成弹出窗口中包含Doxygen方法描述?

使用Xcode,我希望在自动完成选项下面有我方法的Doxygen描述,如alloc:

IMG

在编写时,Xcode会显示自动完成以及文档中的注释.您可以在图像中看到,例如,alloc从选项中选择何时,它会显示"返回接收类的新实例",并且还链接到文档.

例如,我已经能够用Doxygen记录我的源代码

/** 
 This does nothing
*/
 -(void) doNothing
{
    // This does nothing
}
Run Code Online (Sandbox Code Playgroud)

我在Doxygen生成的HTML文件中得到了预期的结果,但我不知道如何使这些结果在Xcode中显示为建议.

xcode doxygen autocomplete objective-c

20
推荐指数
1
解决办法
9720
查看次数

iPhone SDK:如何在方向更改后触发UIView子类上的drawRect?

我正在继承UIView并覆盖drawRect方法.我注意到只在视图首次加载时才调用视图的drawrect.之后再也不会再打电话了.如何确保在方向更改后调用它?我已经尝试在旋转之前和之后调用setNeedsDisplay,但是没有这样做.

iphone uiview drawrect

19
推荐指数
2
解决办法
9322
查看次数

如何将UIColor值转换为命名颜色字符串?

我需要转换UIColorNSString颜色名称.

我试过了:

 NSString *colorString = NSStringFromClass([[UIColor redColor] class]); 
Run Code Online (Sandbox Code Playgroud)

colorString没有给@"redColor".

iphone cocoa-touch ios

16
推荐指数
4
解决办法
3万
查看次数

是否有关于可可触摸自动UI测试的好教程?

通常我发现几乎所有我最重要的iPhone开发测试用例都围绕UI测试而不是业务逻辑或数据测试.我对XCode环境中的自动UI测试不是很熟悉.有人能指点我一本好的教程或书吗?

更新
这个问题是几年前写的,UI测试从那时起已经走了很长一段路.使用UI自动化仍然是一种选择,但KIF框架现在是一个更好的功能测试解决方案,IMO.

来自KIF的github页面:

KIF代表Keep It Functional,是一个iOS集成测试框架.通过利用操作系统为视障人士提供的辅助功能属性,它可以轻松实现iOS应用程序的自动化.

KIF使用标准XCTest测试目标构建并执行测试.测试在主线程中同步进行(运行运行循环以强制通过时间),允许更复杂的逻辑和组合.这也允许KIF利用Xcode 5 Test Navigator,命令行构建工具和Bot测试报告.

iphone xcode cocoa-touch automated-tests ios

13
推荐指数
1
解决办法
6519
查看次数

如何在轮换后调整CAGradientLayer的大小?

我正在添加CAGradientLayer一个视图.当视图自动调整大小时(例如旋转后),不会调整渐变图层的大小.可以将渐变设置为与视图相同的自动调整大小吗?另请注意,我在视图中使用自动布局约束.

这是我正在做的事情:

    CAGradientLayer *gradientLayer = [CAGradientLayer layer];
    gradientLayer.frame = CGRectMake(0.0, 0.0, frame.size.width, frame.size.height);
    gradientLayer.colors = [NSArray arrayWithObjects:
                       (id)[[UIColor colorWithRed:255.0/255.0f green:255.0/255.0f blue:255.0/255.0f alpha:1.0f] CGColor],
                       (id)[[UIColor colorWithRed:233.0/255.0f green:233.0/255.0f blue:233.0/255.0f alpha:1.0f] CGColor], nil];

    [self.layer insertSublayer:gradientLayer atIndex:0];
Run Code Online (Sandbox Code Playgroud)

cocoa cocoa-touch objective-c ios cagradientlayer

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