ユーザーがタップして展開できるこれらのタブがあります。この問題を回避する正しい方法であると判断したため、含まれているビューからタブを削除し、展開時にウィンドウに追加しています。これにより、非常に奇妙なバグが発生したようです。タブが開かれた後、ボタンの通常状態のテクスチャが突然引き伸ばされます。
前
後
比較的大規模なロギングを行ったところ、開閉アニメーションの前後で、タブ全体のフレームとそれに囲まれたボタンがまったく同じであることがわかりました。
2012-07-31 10:08:33.835 Project[1937:1c103] Button:{{0, 0}, {133, 25}}
2012-07-31 10:08:33.836 Project[1937:1c103] Tab:{{0, 177.333}, {133, 25}}
2012-07-31 10:08:34.340 Project[1937:1c103] Tab done:{{118, 777.5}, {133, 202.5}}
2012-07-31 10:08:34.341 Project[1937:1c103] Button done:{{0, 0}, {133, 25}}
この問題は、タブを含むビューからタブを削除し、代わりにウィンドウに追加した場合にのみ発生します。含まれているビュー内でタブをアニメーション化すると、テクスチャが台無しになりません。
私はここで完全に途方に暮れています。
タブのテクスチャとボタンを作成するコードは次のとおりです。
tabImg = [[UIImage imageNamed:@"tab_stretchable"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 15, 25, 15)];
CGRect tabFrame = frame;
tabFrame.origin.x = 0;
tabFrame.origin.y = 0;
tabButton = [[UIButton alloc] initWithFrame:tabFrame];
[tabButton setBackgroundImage:tabImg forState:UIControlStateNormal];
[tabButton addTarget:self action:@selector(tabPressed:) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:tabButton];
frame
この時点で{{0, 177.333}, {133, 25}}
編集
また、ボタンが押されているときのテクスチャは通常のままです。テクスチャがめちゃくちゃになるのは、ボタンの「通常」の状態だけです。
EDIT2
これは、私の問題をまだ再現している基本的な例の git リポジトリへのリンクです。