0

社用車の走行距離とメンテナンスを追跡するためのエンタープライズ アプリを開発しています。グラフィックボタンを追加して、少しおしゃれにしました。ボタンは IB の XIB で想定されているとおりに表示され、iPhone では他のすべての UIView は正しく表示されますが、特定の UIView ではグラフィック イメージが縦方向に不均衡に引き伸ばされます。

下の最初の画像は、3 つのグラフィック ボタンが下部にある状態で、どのように見えるかを示しています。2 番目の画像は、電話での表示方法を示しています。このスクリーン キャップの [ヘルプ] ボタンは通常どおり表示されますが、そのままの状態が続くとは限りません。

また、一貫性もありません。いつでもこのビューを呼び出すと、画像が引き伸ばされて表示されるか、画像がまったく表示されない場合があります。ヘルプボタンが下に見えるように、画像が正常に表示されることはめったにありません。

開発中の携帯電話は、6.1.3 を実行する 4S です。ビューは Retina 3.5 画面用に設定されています。XCodeは最新です(それが何であれ)。

あるべき姿

電話での見え方

繰り返しますが、問題が現れるのはこの 1 つのビューだけです。このUIViewが表示されているときに非表示になっている同じView Controllerに別のUIViewがあります。もう一方のビューのボタン グラフィックは問題なく表示されます。他のすべてのビューとビュー コントローラーは、UIButton で同じグラフィックを問題なく使用します。

4

3 に答える 3

1

Interface Builder (Xcode) で、4.5 インチの画面の高さを使用してビューを作成しました。

しかし、問題が発生しているデバイスは 5 インチの画面です。したがって、ビューは収まるようにサイズ変更されます。

そして、それが行われると、Interface Builder がそれらのサブビューに設定した自動レイアウトの制約が引き継ぎ、サブビューが何をするかを決定ます。これらの制約により、高さが変化します。

于 2013-05-14T21:30:06.643 に答える
1

Autolayout をオフにする必要はありません。Autolayout は非常に便利ですが、 UIButton を再配置した後、 "Align Baseline to:"という制約をランダムに UIButton に割り当てることを楽しんでいるようです。

ストーリーボード内で問題の UIButton/UIImageView を選択し、制約"Align Baseline to:" を見つけ、歯車アイコンをタップして"Promote to User Constraint"を選択し、もう一度タップして"Delete"を選択します。これで問題が解決するはずです。

于 2013-08-22T19:35:01.447 に答える
0

ここでのコメントに応えて、私自身の質問に答えます。このビュー コントローラーの Autolayout をオフにすると、すべてが修正されました。これは、XCode が iPhone 5 向けの開発を開始して以来、私が作成した最初のアプリであるため、Autolayout 機能を認識していませんでした。それがどのように機能し、なぜそれがしたのかを理解する必要があります。

ご助力いただきありがとうございます!

于 2013-05-14T21:47:38.700 に答える