2012-03-19 8 views
0

インターフェイスビルダーで背景を持つカスタムUIButtonを作成すると、内部にタッチアップしたときに画像を黒く塗りつぶすというデフォルトの機能が実現します。 私はプログラム的にUIButtonを作成する場合は、次のように:UIButton IB対プログラムで

buttonPic = [[UIButton alloc] initWithFrame:CGRectMake(5, 5, 100, 63)]; 
    [[buttonPic imageView] setContentMode:UIViewContentModeScaleToFill]; 

[buttonPic setImage:[video pic] forState:UIControlStateNormal]; 

それは私がすべてでIBで作成したもののように動作しません。私が内部に触れると何も変わりません。 UIButtonに設定がありますか? おかげ

答えて

1

は、私はあなたがこの2つのオプションの1つを有効にする必要がありますと思う:

buttonPic.showsTouchWhenHighlighted = YES; 
buttonPic.reversesTitleShadowWhenHighlighted = YES; 
4

これはプログラム的にUIButtonを作成する方法です。

//Specify the type of the button first. No need to use alloc-init for UIButton like other view objects. 

UIButton *myBtn = [UIButton buttonWithType:UIButtonTypeCustom]; 

// Give UIButtonTypeRoundedRect to get default Interface builder style button. 

myBtn.frame = CGRectMake(0, 0, 100, 40); 
[self.view addSubview:myBtn]; 

// Since the button type is custom, give an image to make it visible. 
[myBtn setBackgroundImage:[UIImage imageNamed:@"image.png"] forState:normal]; 
[myBtn addTarget:self action:@selector(myAction:) forControlEvents:UIControlEventTouchUpInside]; 

// These are some optional methods you may want to use. 

myBtn.titleLabel.font = [UIFont fontWithName:@"Arial" size:15]; 
[myBtn setTitle:@"my button" forState:UIControlStateNormal]; 
[myBtn setTitleColor:[UIColor blackColor] forState:normal]; 
[myBtn setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter]; 
関連する問題