0

PaintCode から StyleKit を介してインポートされた形状を描画するカスタム UIView (ProgressView) を作成しました。

以下はコードです。カスタム UIView でインスタンス変数プロパティを宣言しましたが、ViewController からプロパティを変更しようとすると機能しません。

ProgressView.h

#import <UIKit/UIKit.h>

@interface ProogressView : UIView

@property (nonatomic) float daysFraction;
@property (nonatomic) float pagesFraction;


@end

ProgressView.m

#import "ProgressView.h"
#import "StyleKitName.h"
#import "ViewController.h"

@implementation ProgressView
@synthesize daysFraction = _daysFraction;
@synthesize pagesFraction = _pagesFraction;


- (void)drawRect:(CGRect)rect {
    // Drawing code
    [StyleKitName drawCanvas1WithDaysFraction:self.daysFraction pageFraction:self.pagesFraction];
}


-(void)awakeFromNib {
    [super awakeFromNib];
    self.pagesFraction = 0;
    self.daysFraction = 0;
}

ViewController.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@end

*ViewController.m**

#import "ViewController.h"
#import "ButtonAnimation.h"
#import "ProgressView.h"
#import "StyleKitName.h"

@interface ViewController ()

@property (weak, nonatomic) IBOutlet ButtonAnimation *buttonView;
@property (weak, nonatomic) IBOutlet UIButton *actionButton;

@end


@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    ProgressView *new =[[ ProgressView alloc]init];
    new.daysFraction = 0.7f; // here I am setting value to variable in custom view ProgressView but not working.

}

- (IBAction)animateTheButton:(id)sender {
    self.buttonView.layer.backgroundColor = [UIColor clearColor].CGColor;
    [self.buttonView addErrorAnimation];

}


@end
4

1 に答える 1

1

このビューをUIViewControllerのビューに追加する必要があります:

[self.view addSubview:progressView];

後で、フレームも設定する必要があります。例えば

[progressView setFrame:self.view.bounds];

回転/ウィンドウのサイズ変更イベントで変更するには、viewDid/WillLayoutSubviews メソッドで行うことができます。

ところで、ビューに という名前を付けないでくださいnew。それは恐ろしいことです。そのような名前は、それがどのような変数であるかさえわかりません。

于 2015-11-01T19:50:09.287 に答える