Tag: 子类

Swift – 在课堂上给自己分配一个NIB

我正在为通知下拉横幅创build一个UIView子类。 我正在使用XIB构build视图,并希望在初始化时将该xib分配给该类(即避免必须从调用ViewController执行此操作)。 既然你不能很快地分配“自我”,我该如何从课堂上正确地做到这一点呢? class MyDropDown: UIView { func showNotification() { self = UINib(nibName: nibNamed, bundle: bundle).instantiateWithOwner(nil, options: nil)[0] as? UIView } }

Swift – 重写UButton setSelected

我在Swift中创build一个UIButton子类,以便在select时执行自定义绘图和animation 在重写的Swift中等效于什么- (void)setSelected:(BOOL)selected在ObjC中- (void)setSelected:(BOOL)selected ? 我试过了 override var selected: Bool 所以我可以实现一个观察员,但我明白了 Cannot override with a stored property 'selected'

UIControl:sendActionsForControlEvents省略UIEvent

我想实现一个UIControl的自定义子类。 它除了一个致命的问题,使我吐牙,美丽的作品。 每当我使用sendActionsForControlEvents:发送一个动作消息,它就省略了包含一个UIEvent。 例如,如果我将它链接到具有以下签名的方法: – (IBAction) controlTouched:(id)sender withEvent:(UIEvent *)event …事件总是回来,为零! 问题似乎发生在sendActionsForControlEvents内: 现在,我需要我的IBAction来确定触摸的位置。 我通常通过从事件中提取触动来做到这一点。 一定有办法确保正确的事件发生? 这是使用UIControl的一个非常重要的部分! 任何人都知道一个法律的解决方法?

Objective C – 子类中的狭义实例variablestypes?

是否有可能在一个子类中缩小伊娃的允许types。 像这样的东西: @interface person: NSObject { NSArray *friendArray; } @interface mutablePerson: person { NSMutableArray *friendArray; } 我只是试着确切的代码,和Xcode给了我一个编译错误。 我想知道是否有解决办法。 我正在做的这个项目将会有很多这样的情况。 我明白,我可以使用强制使代码工作。 但是如果我这样做的话,我会做很多的演员,而且我想知道是否有更好的方法。

UIBezierPath子类初始化程序

我试图创build一个UIBezierPath的子类来添加一些对我有用的属性。 class MyUIBezierPath : UIBezierPath { var selectedForLazo : Bool! = false override init(){ super.init() } /* Compile Error: Must call a designated initializer of the superclass 'UIBezierPath' */ init(rect: CGRect){ super.init(rect: rect) } /* Compile Error: Must call a designated initializer of the superclass 'UIBezierPath' */ init(roundedRect: CGRect, cornerRadius: CGFloat) { super.init(roundedRect: roundedRect, cornerRadius: […]

具有合成只读属性的类的子类不能访问Objective-C中的实例variables

在超类MyClass : @interface MyClass : NSObject @property (nonatomic, strong, readonly) NSString *pString; @end @implementation MyClass @synthesize pString = _pString; @end 在子类MySubclass @interface MySubclass : MyClass @end @implementation MySubclass – (id)init { if (self = [super init]) { _pString = @"Some string"; } return self; } 问题是,编译器不认为_pString是_pString的成员,但我没有问题在MyClass访问它。 我错过了什么?

UIViewController子类不能分配实例variables

这对我来说完全是莫名其妙,让我觉得我错过了一些必要的东西。 但我试图创build一个视图控制器容器来pipe理两个窗格(类似于SplitViewController,但有一些关键的区别)。 我几乎没有开始build造这个class,所以我现在只有3个iVar: @implementation SplitViewController{ BOOL _showLeftPane; UIViewController *_leftController; UIViewController *_rightController; } 无论我做什么,我都不能将视图控制器分配给_leftController iVar。 大多数情况下,_rightController iVar可以分配。 它变得更加怪异。 如果我切换iVars的顺序,所以_rightController出现在_leftController之前,我不能在第一次尝试中分配任何一个。 但是,如果我再试一次(字面上写两次)_leftController将采取。 一致的是,当我使用控制台在赋值后立即请求iVar声明中列出的第一个控制器的值时,我得到的值是(UIViewController *) $5 = 0x00000001 [no Objective-C description available] 。 WTF? 出于好奇(因为我可以…我几乎没有开始写类)我把超级从UIViewController更改为NSObject。 当我这样做,分配工作。 实际上,赋值就是关于在loadView上创build一个空白视图的所有这个类。 我错过了什么? 更新代码的其余部分: 整个.h文件: #import <UIKit/UIKit.h> @interface SplitViewController : UIViewController @property (strong) UIViewController *leftViewController; @property (strong) UIViewController *rightViewController; @end 整个.m文件(注意,我试过综合属性,除了难以从控制台debugging外,其他行为都是一样的): @implementation SplitViewController{ BOOL […]

如何inheritanceUIScrollView并使委托属性保密

这是我想要达到的: 我想要一个UIScrollView子类有更多的function。 这个子类应该能够在滚动上作出反应,所以我必须将委托属性设置为self来接收事件,如: – (void) scrollViewDidEndDecelerating:(UIScrollView *)scrollView { … } 另一方面,其他类也应该能够接收这些事件,就像他们使用基本的UIScrollView类一样。 所以我有不同的想法如何解决这个问题,但所有这些都不完全满足我:( 我的主要做法是使用像这样的自己的委托属性: @interface MySubclass : UIScrollView<UIScrollViewDelegate> @property (nonatomic, assign) id<UIScrollViewDelegate> myOwnDelegate; @end @implementation MySubclass @synthesize myOwnDelegate; – (id) initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { self.delegate = self; } return self; } // Example event – (void) scrollViewDidEndDecelerating:(UIScrollView *)scrollView { // Do […]

在layoutSubviews中旋转视图

背景和目标 目标:我想旋转并翻转一个UITextView 。 ( 为什么:看我以前的问题 ) 问题:如果我直接在UITextView上进行转换,文本布局会因某种未知的原因而变得混乱。 解决scheme:将UITextView放在UIView容器中,然后对容器执行转换。 新问题:旋转视图上的自动布局(或任何types的布局)成为主要的头痛问题 。 build议的解决scheme:使UIView的子类充当旋转和翻转的UIView的附加容器。 然后自动布局应该在这个自定义视图上工作。 目前的问题 它在第一次出现的时候都有效( UITextView有黄色背景): 但是当方向改变时,会发生以下情况(蓝色是IB中设置的子类UIView背景): 如果禁用了rotationView.addSubview(textView)行,那么旋转容器视图(红色)就可以重新定位,即使在方向更改时也是如此: 所以这个问题一定是关于我添加UITextView 。 但我该怎么做呢? 码 class MongolTextView: UIView { // properties var rotationView: UIView! var textView: UITextView! // This method gets called if you create the view in the Interface Builder required init(coder aDecoder: NSCoder) { super.init(coder: aDecoder) } […]

为什么我不应该inheritance一个UIButton?

我已经问了关于子类化一个UIButton堆栈溢出的几个问题,有几个人告诉我,我不应该子类化一个UIButton 。 子类化UIButton的负面影响是什么? 而且我知道它是模糊的,但是UIButton子类化还有什么其他的select?