0

の画像ビューの背景ビューを使用しようとしていますUIButtonが、何らかの理由で表示されません。これは私が試したことです:

detailCell.greenPriorityButton.imageView.frame = detailCell.greenPriorityButton.frame;
[detailCell.greenPriorityButton.imageView setBackgroundColor:[UIColor greenColor]];
[detailCell.greenPriorityButton.imageView setHidden:NO];
[detailCell.greenPriorityButton.imageView setOpaque:YES];

私はプロパティを呼び出しNSLogました、imageViewそしてそれはすべてがそうあるべきであるように思われます。ボタンをタップすることもでき、それに関連付けられているメソッドが呼び出されるので、ボタンが存在することがわかります。私がここで何かを逃している場合に備えて、NSLogリターンがあります:

<UIImageView: 0x1d97e1b0; frame = (254 61; 20 20); clipsToBounds = YES; userInteractionEnabled = NO; layer = <CALayer: 0x1d97e210>>

上記の画像ビューのプロパティを設定するためにドット表記を使用していない理由は、値が変更されていないように見えるためです。たとえば、私が言うなら、detailCell.greenPriorityButton.imageView.hidden = NO;それは何もしないようです。

助けてくれてありがとう!

編集

ボタンの背景色だけでなく、画像ビューも設定しないのは、ボタンに小さな形を作ろうとしているからです。ただし、タップ可能なスペースには形状の周囲にマージンを持たせて、ユーザーフレンドリーにする必要があります。ボタンのフレームとレイヤーとは別にフレームとレイヤーを操作できるので、画像ビュープロパティが役立つと思いました。

ボタンにサブビューとしてを追加しようとしましたUIView *greenBackgroundが、これも表示されません。

4

1 に答える 1

1

ボタンの色を設定する目的でボタンのビュー内に表示できるビューが必要な場合は、imageviewを使用しようとするのは間違ったアプローチだと思います。背景色が変更されたサブビューを追加するだけで済みます。このようなもの:

UIView *colorView = [[UIView alloc] initWithFrame:CGRectMake(10, 10, 10, 10)];//Whatever rect you want that will be in reference to the frame of the button
colorView.backgroundColor = [UIColor greenColor];
[detailCell.greenPriorityButton addSubview:colorView];
于 2013-01-14T22:35:01.547 に答える