【问题标题】:add custom UIView and xib into storyboard将自定义 UIView 和 xib 添加到情节提要中
【发布时间】:2015-11-14 21:08:33
【问题描述】:

我有一个自定义 UIView 和名为 DialPad 的 xib,我正在尝试在我的故事板中使用这个对象,但自定义 DialPad 没有被添加为带有按钮的子视图

我的自定义拨号盘:UIView

@implementation DialPad


- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self)
    {
        self.backgroundColor = [UIColor clearColor];
    }
    return self;
}

我的自定义 xib 称为 DialPad

我的视图控制器看起来像这样

#import <UIKit/UIKit.h>
#import "DialPad.h"

@interface ViewController : UIViewController
@property (weak, nonatomic) IBOutlet UIView *dial;
@end


#import "ViewController.h"
@interface ViewController ()
{
    DialPad  *d;
}
@end

@implementation ViewController

- (void)viewDidLoad 
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    d = [[DialPad alloc] initWithFrame:self.dial.frame];

    [self.dial addSubview:d];
}    
@end

还有我的故事板

但是视图周围的边框看起来很奇怪

#import "DialPad.h"
#import <QuartzCore/QuartzCore.h>

@implementation DialPad

- (void)drawRect:(CGRect)rect
{
    // Drawing code
    self.layer.borderColor = [UIColor redColor].CGColor;
    self.layer.borderWidth = 1;
}
@end

【问题讨论】:

    标签: objective-c uiview uistoryboard xib


    【解决方案1】:

    要从 xib 文件加载视图,您应该这样做:

    d = [[[NSBundle mainBundle] loadNibNamed:@"DialPad" owner:nil options:nil]
                     firstObject];
    [self.dial addSubview:d];
    

    边框:尝试在- (void)awakeFromNib中添加边框代码

    【讨论】:

    • 仍然没有看到任何按钮,只是一个清晰的 uiview
    • 移除设置框架,别忘了添加子视图。您可以尝试编辑后的答案吗?
    • 还要检查插座连接。
    • 谢谢,我删除了自定义类中的 initWithFrame 并使用了您的建议,看起来很完美,再次感谢
    • 还有一个问题,当我向自定义 DialPad 视图添加边框时,它也会向整个视图控制器添加边框
    猜你喜欢
    • 2015-03-05
    • 2012-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-31
    • 2015-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多