我在我的应用程序(UITextField)中有一个密码字段。 当用户在字段中input文本时,我希望它显示*而不是他们input的文本。 我已经尝试使用UITextField的UIControlEventEditingDidEnd ,但它只在编辑结束时显示一个* ,但是我希望它在任何文本input后立即显示* ,就像在任何在线电子邮件密码字段中一样。 我如何获得所需的行为?
在Xcode 4中,我看到了我的目标总结: “Version”input对应于info.plist文件中的CFBundleShortVersionString ,“Build”input对应于CFBundleVersion 。 这两者有什么区别? 我看到很多互联网上的人都希望把两者都置于同样的价值中,我怀疑是为了向后兼容。 我有两个问题: 1)如果我从头开始,版本化您的应用程序的最佳做法是什么? 2)在我的应用程序的所有以前的版本中,我只使用了CFBundleVersion 。 为了不搞乱升级过程,我应该继续像以前一样增加CFBundleVersion ,还是可以在假设存在的情况下切换到“正确的方式”?
在iOS 8中, UICollectionViewFlowLayout支持根据自己的内容大小自动调整单元格大小。 这根据其内容根据宽度和高度来调整单元格大小。 是否可以为所有单元格的宽度(或高度)指定一个固定的值,并允许其他维度resize? 对于一个简单的例子,考虑一个单元格中的多行标签,将其约束放置在单元格的边上。 多行标签可以调整不同的方式来适应文本。 单元格应填充集合视图的宽度并相应地调整其高度。 相反,单元格的大小是随意的,当单元格大小大于收集视图的不可滚动维度时,它甚至会导致崩溃。 iOS 8引入了方法systemLayoutSizeFittingSize: withHorizontalFittingPriority: verticalFittingPriority:对于集合视图中的每个单元,布局在单元上调用此方法,传入估计的大小。 对我来说有意义的是在单元格上覆盖这个方法,传递给定的大小,并将水平约束设置为所需的水平约束,将垂直约束设置为低优先级。 这样水平尺寸固定在布局中设置的值,垂直尺寸可以灵活。 像这样的东西: – (UICollectionViewLayoutAttributes *)preferredLayoutAttributesFittingAttributes:(UICollectionViewLayoutAttributes *)layoutAttributes { UICollectionViewLayoutAttributes *attributes = [super preferredLayoutAttributesFittingAttributes:layoutAttributes]; attributes.size = [self systemLayoutSizeFittingSize:layoutAttributes.size withHorizontalFittingPriority:UILayoutPriorityRequired verticalFittingPriority:UILayoutPriorityFittingSizeLevel]; return attributes; } 然而,这种方法给出的大小是完全奇怪的。 关于这个方法的文档对我来说是非常不清楚的,并且提到使用常量UILayoutFittingCompressedSize UILayoutFittingExpandedSize ,它只是代表零大小和相当大的一个。 这个方法的size参数真的只是一个传递两个常量的方法吗? 有没有办法达到我期望得到给定大小的适当高度的行为? 备用解决scheme 1)添加将为单元格指定特定宽度的约束条件可以实现正确的布局。 这是一个糟糕的解决scheme,因为该约束应设置为单元格的集合视图的大小,它没有安全的引用。 这个约束的值可以在单元configuration的时候传入,但是这看起来完全违反直觉。 这也很尴尬,因为直接给单元格添加约束或者它的内容视图导致了很多问题。 2)使用表格视图。 表格视图以这种方式工作,因为单元格具有固定的宽度,但是这不能适应其他情况,例如具有固定宽度单元格的iPad布局。
Objective-C中弱和强属性setter属性之间有什么区别? @property(retain, [weak/strong]) __attribute__((NSObject)) CFDictionaryRef myDictionary; 什么是影响和利益? 我听说iOS 4不具备弱点,我们需要使用assign。 弱分配类似吗?
在更新到Xcode 5之后,我的所有应用程序视图中的导航栏都向下移动。 这里有一些截图,第一个显示视图中的所有内容,第二个显示所有内容。 search栏应该从导航栏的位置开始。 任何人都知道我可以解决这个问题? 编辑:我已经尝试过以前的build议: if ([self respondsToSelector:@selector(edgesForExtendedLayout)]) self.edgesForExtendedLayout = UIRectEdgeNone; 但是它产生了非常奇怪的结果。 这可能是因为我在这个视图控制器下有一个“滑动菜单”,由于导航栏的透明度而出现。
我如何计算2010年1月1日至2010年2月3日之间的天数?
我有一个使用自定义字体的UIButton ,在我的视图加载时设置: – (void)viewDidLoad { [super viewDidLoad]; self.searchButton.titleLabel.font = [UIFont fontWithName: @"FONTNAME" size: 15.0 ]; } 我得到的问题是,字体似乎上浮的中心线。 如果我注释掉这一行,默认的字体出现垂直居中的罚款。 但改为自定义字体打破了垂直alignment。 我也得到一个自定义字体的表格单元相同的问题。 我是否需要将视图告诉某处自定义字体不像其他字体那么高? 编辑:我刚刚意识到,我正在使用的字体是Windows TrueType字体。 我可以在Mac上的TextEdit中使用它,只有在我的应用程序alignment的问题
如何在UIView周围添加虚线边框。 像这样的东西
我想知道如何抑制这个警告: 类正在实现一个方法,也将由其主要类实现。 我有这个特定的代码类别: + (UIFont *)systemFontOfSize:(CGFloat)fontSize { return [self aCustomFontOfSize:fontSize]; }
一个Xcode初学者的问题: 这是我第一次使用Xcode 4.6.3的经验。 我想写一个非常简单的控制台程序,search配对的BT设备,并打印到NSLog。 它build立与以下错误: Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_IOBluetoothDevice", referenced from: objc-class-ref in main.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) 我疯狂search。 常见的问题应该是一个文件的引用,其中只有头文件被导入,链接器找不到实现(* .m-file)。 然而,IOBluetooth库是像Foundation Framework这样的标准框架。 我在上面的陈述中错过了什么? 我也试着build立一个32位机器(构build失败了)。 这显然是一个链接器的错误,但是我不知道,它涉及什么,除了有一个问题,findIOBluetoothDevice的实现,在x86和x64架构,而头文件是从一个标准的包含框架,被称为IOBluetooth? 为了您的信息我的主要代码“main.m”是: #import <Foundation/Foundation.h> #import <IOBluetooth/objc/IOBluetoothDevice.h> // Note the import for […]