web-dev-qa-db-ja.com

IBでUIViewのサイズを変更できません

おそらく単純なものですが、Interface BuilderのxibでUIViewのサイズを変更できない理由はわかりません。

Xcodeとサイズインスペクターで新しいビューXIBを作成しました。幅と高さは無効になり、320 x 460にグレー表示されます。他の2つのビュー(他の2つのタブバーに関連付けられたアイテム)。

これに何か関係があるかどうかはわかりませんが、最近SDKを3に更新しました。

ありがとう!

87
Ayrad

Interface Builderのステータスバーなどのユーザーインターフェイス要素をシミュレートしている間は、サイズを編集できないと思います。有効になっている場合は、シミュレートされた要素をオフにしてみてください。これがなぜそうなのか正確にはわからないので、なぜこれが正確なのかを知っている人からのフィードバックを歓迎します-正当な理由がなければなりません。

81
teabot

XCode 4.6.3/5.0.2でそれを実現するには、以下のスクリーンショットに従う必要があります。

  1. [ファイルインスペクター]の下で、[Use Auto Layout
  2. [属性セレクター]をクリックして、サイズに[Freeform]を選択します

これは、tableViewのheaderViewを作成するときに必要です

enter image description here

75
Houman

探している部分は、最初のInspectorパネル(Command-1)にあります。右上には、シミュレートされたユーザーインターフェイス要素というラベルの付いたセクションがあります。デフォルトでは、ステータスバーはオンになっています。 3つすべてがNoneに設定されていることを確認する必要があります。

40
Thomas Mon

Xcode 4.2、iOS 5.0.1のように、デフォルトのシミュレートされたメトリックには、UIViewControllersの「size」属性を「Inferred」にシミュレートすることが含まれます

この属性を「Freeform」に変更すると、UIViewControllerに含まれるUIViewのサイズを変更しながら、ステータスバー(またはその他のシミュレーション)もシミュレートできます。

26
lol

インスペクタに移動し、最初のパネルに移動して(またはコマンド1を押して)、「シミュレートされたユーザーインターフェイス要素」セクションの下のステータスバー、トップバー、ボトムバーとマークされたフィールドを[なし]に変更します。小さな三角形をクリックして表示する必要がある場合があります。

4
davecom

おかしい私は同様の問題を抱えています。 xibファイルからすべてのビューを削除し、ビューを再度追加しました。ステータスバーに対応しないように、ステータスバーを「指定なし」に設定します。ビューを追加すると、予想どおり(0,0,320,480)ではなく、x = 0、y = 0、w = 320 h = 460で作成されます。高さを480に変更し、それをファイルの所有者に接続し、色を変更して背景との関連を明確にした後。私は、画面の上部とビューの間に白いバンドがあったと思います。次のコードを追加しました:

#define RECTLOG(rect)(NSLog(@ "" #rect @ "x:%fy:%fw:%fh:%f"、rect.Origin.x、rect.Origin.y、rect.size.width、rect .size.height)); 

viewDidLoad内

-(void)viewDidLoad {
 [super viewDidLoad]; 
 RECTLOG(self.view.frame); 
} 

IBからロードされたビューは実際には(0、20、320、480)であることが判明しました。回避策として、self.view.frame = CGRectMake(0、0、320、480)でビューのフレームをリセットします。

IB 3.2.5を使用しています

この問題を少し修正したいと思います。

1
cramhead

Xibファイルの作成時に自動的に作成されるUIViewは、サイズ変更パネルまたはEdgeハンドルからサイズ変更できないことに気付きました。

別のUIViewを追加し、古いUIViewから新しいUIViewにすべてをドラッグしてから、古いUIViewを削除するだけでした。

それは私のために問題を解決しましたが、はい、Appleを解決するためのインターフェイスビルダーに根本的な問題があると思います(私が間違っていれば誰かが私を修正します)。

XCode 4統合インターフェイスビルダーを使用しています。

1
PowerAktar

別の方法で整理しました...

お気に入りのテキストエディターでxibを開き、この行を編集します

        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="CompassViewController">

CompassViewControllerは、nib/xibをリンクしようとしているクラス名です。

正しいクラス名でクラス名を編集するだけで完了です;)

0
jeet.chanchawat