0

UIView の制御 (サイズ変更、移動など) に役立つ .m および .h ファイルがあります。

ここに投稿しました:RemoveFromSuperview specific viewsで、スーパービューからすべてのサブビューを削除する方法を尋ねます。

私はループでアイデアを得て、うまくいきました。

UIView からメソッドにアクセスしたいと思います。

[myStickerView hideTools]; 

このメソッドは、myStickerView からいくつかのボタンを非表示にします。

メソッドを呼び出すためにこのコードを使用しましhideToolsたが、機能しません。

for (UIView *view in self.view.subviews) {
    if ([view isKindOfClass:[myStickerView class]) {
        [myStickerView hideTools];
    }
}

どうしたの?お願い助けて。hideToolsからすべてmyStickerViewのを呼び出したいself.view.subviews

ありがとう。

4

3 に答える 3

2

あなたのメソッドはあなたのクラスhideToolsからのみ利用可能であると想定しています。myStickerView

その場合、そのクラスから hideTools を呼び出します。

for (UIView *view in self.view.subviews) {
    if ([view isKindOfClass:[myStickerView class]) {
        [(myStickerView *)view hideTools];
    }
}

編集:私は他の人と同時に答えました:(しかし、ビューをmyStickerViewにキャストしないと、警告が表示されます。

于 2013-10-12T00:37:46.800 に答える
0
for (UIView *view in self.view.subviews) {
if ([view isKindOfClass:[myStickerView class]) {
    [view hideTools];
}
于 2013-10-12T00:37:55.927 に答える
0

myStickerViewまず、 for ループにそのようなオブジェクト呼び出しはありません。

そして、viewサブビュー内はUIViewクラスに宣言されています。

これが私の提案です

for (myStickerView *stickerView in self.view.subviews) {
    if ([stickerView isKindOfClass:[myStickerView class]) {
      [stickerView hideTools];
    }

または、ターゲットのサブビューをクラスに宣言するように強制します

for (UIView *view in self.view.subviews) {
        if ([view isKindOfClass:[myStickerView class]) {
          [(myStickerView *)view hideTools];
        }
于 2013-10-12T00:41:22.760 に答える