Tag: uikit

IBOutlets到故事板中的其他视图控制器

我想用UIPageViewController在多个视图控制器之间切换。 这些视图控制器是静态的,所以我想devise他们在我的故事板。 由于不能使用关系或segues将它们连接到UIPageViewController而是一个数据源,所以我需要一个带有IBOutletCollection的数据源对象来保存这些页面: @property (retain, nonatomic) IBOutletCollection(UIViewController) NSArray* pages; 虽然,我不能将这个sockets连接到有问题的视图控制器。 我想那是因为故事板中的视图控制器被完全独立处理,就像它们在不同的nib文件中一样。 有没有解决scheme? 我不想在代码中devise这些视图控制器。

UITextField:textRectForBounds:Vs. editingRectForBounds:

UITextField的文字矩形与可编辑文本有什么区别? 我只想移动文本显示在文本框内的位置。 我应该只重写这两个方法具有相同的确切实现吗? UITextField类参考 textRectForBounds: 返回文本字段文本的绘制矩形。 editingRectForBounds: 返回可以显示可编辑文本的矩形。

如何将UIScrollView的触摸事件发送到它后面的视图?

我有一个透明的UIScrollView在另一个视图之上。 滚动视图具有内容 – 文本和图像,用于显示信息。 它背后的观点有一些图像,用户应该能够点击。 并使用所提到的滚动视图来滚动它们上的内容。 我希望能够正常使用滚动视图(尽pipe没有放大),但是当滚动视图实际上并没有滚动,让轻拍事件通过后面的视图。 使用触摸和滚动事件的组合我可以决定什么时候让水龙头通过。 但它背后的观点仍然没有得到它们。 我曾尝试使用类似的东西来处理所有触摸事件: – (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { NSLog(@"touchesBegan %@", (_isScrolling ? @"YES" : @"NO")); if(!_isScrolling) { NSLog(@"sending"); [self.viewBehind touchesBegan:touches withEvent:event]; } } 但它不起作用。 也是在我的情况下,我不能真正应用hitTest和pointInside解决scheme,给我的用例。

为什么UIFont和CGFont / CTFont完全分离?

我试图用一个下载的字体画一些文字。 我查看了API文档并search了网页。 我find了一个解决scheme,但问题是,它只适用于CoreGraphics级框架。 所以我search了一种将CGFont转换成CGFont的方式,但是没有办法做到这一点。 我意识到UIFont和CGFont/CTFont完全分离,即使它们是从相同的字体文件创build的。 CGFont和CTFont可以相互转换,但是对于UIFont ,唯一的方法就是重新创build名称和大小等属性。 而适用的代码也是分开的。 例如, CATextLayer只接受CGFont / CTFont – 没有UIFont 。 但是所有UIKit控件只接受UIFont 。 为什么这种分离存在? 还是我错了? (在UIKit类中使用下载的字体的任何方式?)

UIImageJPEGRepresentation compressionQuality与其他编码器

UIImageJPEGRepresentation中的compressionQuality参数如何与其他编码器(如libjpeg或ImageMagick)中的类似参数相关? 当我尝试在ImageMagick和UIImageJPEGRepresentation使用相同的值时,我获得完全不同的图像大小。 我甚至试过WebP,它的尺寸比UIImageJPEGRepresentation结果要小得多。

用多个xibdevise一个视图控制器

在视图控制器中使用多个xib来实现响应式devise是否是最佳做法? 我目前正在实施一个应用程序,严重依赖于其数据的远程API。 一个特定的视图是麻烦的,因为布局取决于从该API返回的数据。 它既可以是具有完整评论和定价的产品,也可以是我们仅具有有限信息的产品。 devise对数据有响应。 根据返回多less信息,视图的布局与另一个大不相同。 另外,还有一些需要根据文本长度来重新定位的元素。我原本在代码中几乎全部实现了这个devise,但是这样做很快就无法维护,所以我把它几乎全部卸载到xib中,只使用代码重新定位元素。 使用多个xib可能是一个好的解决scheme。 当视图加载时,控制器执行API请求,然后根据需要加载新的xib。 我不确定这种方法可能有什么不利之处。

iOS:如何animation两个UIViews之间的翻转?

我想animation的UIButton实例和UIImageView实例之间的翻转效果。 基本上这是一个“翻转纸牌”的效果,一边(UIImageView)只是一个很好的模式,翻转时,应该显示一个文本的UIButton。 我的代码具有以下问题: UIButton子视图的文本在翻转后不显示 在翻转animation中阴影消失 这是一个目标的视觉表示: 在这里你可以下载非常简单的示例应用程序。 任何build议如何解决上述两个问题? 我真的没有想法 – 任何帮助高度赞赏! 这是标题代码: #import <UIKit/UIKit.h> @interface CardView : UIControl @property (nonatomic) BOOL isFrontSide; – (void)setupView; – (void)turnCard:(BOOL)inShow withAnimationCompletion:(void (^)(BOOL inFinished))inCompletion; @end 这是实现代码: #import "CardView.h" #import "UIView+Extension.h" #import <QuartzCore/QuartzCore.h> #define kAllControlStates (UIControlStateNormal | UIControlStateHighlighted | UIControlStateDisabled| UIControlStateSelected) @interface CardView() @end @implementation CardView – (void)setupView { [self styleViewWithRoundedEdges:YES […]

弱链接UIPopoverBackgroundView

我有一个项目,必须部署到4.0,但有一些function只有5.0,如用户界面定制。 我想我的UIPopoverBackgroundView子类弱连接,但我总是遇到以下错误启动时4.X设备 dyld: Symbol not found: _OBJC_CLASS_$_UIPopoverBackgroundView 我无法使用NS_CLASS_AVAILABLEmacros,因为popup窗口的自定义背景是UIPopoverBackgroundView类的子类,所以必须在.h中声明。 我如何弱链接UIKit的一部分? 或者还有别的办法解决这个问题吗? 谢谢大家

没有子类UIView或UIViewController:可能捕获子视图是否被添加?

如果视图作为子视图添加到控制器的现有视图,是否有办法捕获事件或通知? 我在这里有一个库,我不能inheritance子类,但需要知道是否添加了特定的子视图来触发自定义操作。 有机会吗?

使UICollectionView不断滚动

我有一个游戏,我需要一个不断滚动的字母板,并循环一组数据( A, D, X, S, R, P, F, G, H, Y, W, M )(像这个: https : //www.youtube.com/watch?v=z3rO8TbkS-U&feature=youtu.be )。 当用户点击一个字母时,该字母需要从该板上移除。 我不能停止滚动,它需要不断滚动。 我不确定如何做到这一点。 我一直在尝试用UICollectionView来做到这一点,但我不确定如何做到这一点。 任何帮助将不胜感激! 谢谢 :)