自定义AlretView,


自定义一个AlretVIew,通过xib和view关联,可自由定制,可复用。

  

        通过代码创建一个UIView子类,在这个子类内部对view进行一定的设定,通过传入的数据模型动态改变view的显示,这样定义的子类一般复用性强, 但是创建UIView类的时候不能同时创建xib文件。


       有没有方法可以像自定义UITableViewCell一样,创建一个自定义的UIView类关联到一个Xib文件,这样可以减少很多布局代码。方法是先创建UIView的子类,这里是JZDialogView,然后再创建一个JZDialogView.xib文件

            

  然后将View的Custom Class 项中的 Class 设置成JZDialogView,File's Owner 的CustomClass 可以不用管,

    但是  View 的一定要设置,设置完应该是这样的 



 View的名字自动变成了 Dialog View

 

      现在可以自由定制xib文件,随意添加组件,将需要随数据改动的组件关联到JZDialogView.h,像这样

    


在JZDialogView.m中 重写awakeFromNib方法 

- (void)awakeFromNib {
    
    [self initframe];

}




- (void)initframe
{
    [self setFrame:CGRectMake(0, 0, fDeviceWidth, fDeviceHeight)];
    self.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.4];
    self.dialogView.layer.cornerRadius=10;
    self.dialogView.layer.masksToBounds = YES;
              
}
              

-(void) setModel:(repayDetailModel *)model
{
    _model = model;
    
    _capitalLabel.text = _model.capital;
    _commissionLabel.text = _model.commission;
    _refundMLabel.text = _model.refundM;
    _fineForLatePaymentLabel.text = _model.fineForLatePayment;
    _countLabel.text =_model.count;
    
/**
 
  这里可以根据model的内容计算,决定view该怎么显示,是否需要隐藏或者显示一些组件等等,各个组件的大小位置也可以变化
     然后再  modifyLayout修改更新
 
 */
    
    [self  modifyLayout];
}

-(void) modifyLayout{






}




+(id) loadDialogView
{
    return  [[NSBundle mainBundle] loadNibNamed:NSStringFromClass(self) owner:nil options:nil][0];
}







-(IBAction)dismiss
{
    [self removeFromSuperview];
}

在需要使用的的地方

JZDialogView *dia = [JZDialogView loadDialogView ];
    
    [dia setModel:[_data objectAtIndex:0]];
    
    [self.view addSubview:dia];


源码下载地址: http://download.csdn.net/detail/jasonjz/9303115



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值