私はiOSにかなり慣れていません。アプリケーション全体で特定の UIView クラスを頻繁に使用するプロジェクトに取り組んでいます。このクラスは、背景色に透明性を持たせる単純な画像です。これはこれまでのところうまくいきます。このクラスは、単独の UIView として存在する場合もあれば、ボタンのサブビューとして存在する場合もあります。
この UIView をサブビューとして UIButton に追加すると、UIView のコンテンツ全体がフル サイズで表示されますが、自動レイアウトの使用がオフになっていない限り、ボタンのクリック可能な領域は xib で定義されたサイズのままです (手動で試してもボタンのフレームを設定します。)
UIButton をプレースホルダーとして xib に配置し、後で初期化された UIView のオーバーレイ画像のサイズに基づいてサイズ/クリック可能領域を定義したいと思います。
これは可能でしょうか、それとも xib ファイル/自動レイアウトの使用法を誤解していますか?
ViewDidLoad の下に...
- (void)viewDidLoad{
[theButton addSubview:_theView];
CGRect buttonFrame = theButton.frame;
buttonFrame.size = CGSizeMake(_theView.getSize.width,_theView.getSize.height);
[theButton setFrame:buttonFrame];
}
ただし、setFrame を呼び出す前後にボタン情報を出力すると、フレームは同じサイズのままです。
(「_theView.getSize」は私が追加したことに注意してください)