SORU
14 Mart 2013, PERŞEMBE


Bir UİView için bir Uç yüklemek için doğru yolu alt

Bu soruyu ama cevap çelişiyor ve kafam karıştı önce soruldu farkındayım, lütfen beni alev yok.

Benim app boyunca yeniden kullanılabilir UİView bir alt sınıf olsun istiyorum. Uç bir dosya kullanarak arabirimi açıklamak istiyorum.

Şimdi bakalım, bir faaliyetin göstergesi ile yükleme göstergesi bir görünüm olduğunu söylüyor. Bazı olay bu görünüm oluşturmak için istiyorum ve görünümünde bir kontrolörün görüntülemek için animasyon. Manzara hiç sorun Program aracılığıyla öğeleri oluşturma programlı ve init bir yöntem içinde kendi çerçevesi vb arayüzü tarif edebilirim.

Nasıl olsa bir kalem ucu kullanarak yapabilirim? Boyutunu koruyarak bir çerçeve ayarlamak zorunda kalmadan ınterface builder verildi.

Bu gibi yapmayı başardım ama yanlış (sadece bir seçici ile bir manzarası var) eminim öyledir:

 - (id)initWithDataSource:(NSDictionary *)dataSource {
        self = [super init];
        if (self){
            self = [[[NSBundle mainBundle] loadNibNamed:[NSString stringWithFormat:@"%@", [self class]] owner:self options:nil] objectAtIndex:0];
            self.pickerViewData = dataSource;
            [self configurePickerView];
        }
        return self;
    }

Ama ben örneğini öz ve üzerine ben:

FSASelectView *selectView = [[FSASelectView alloc] initWithDataSource:selectViewDictionary];
    selectView.delegate = self;

    selectView.frame = CGRectMake(0, self.view.bottom   50, [FSASelectView width], [FSASelectView height]);

Yukarı İB den almış yerine el ile çerçeve belirlemek zorundayım.

Görünümü denetleyicisi bu özel görünüm oluşturmak istiyorum, ve manzarası elemanları kontrol erişebilir. EDİT: Yeni görünüm bir kumanda istemiyorum.

Teşekkürler

EDİT: eğer bu en iyi yöntem olup olmadığını bilmiyorum, emin değilim, ama bu şöyle yaptım:

FSASelectView *selectView = [[[NSBundle mainBundle] loadNibNamed:[NSString stringWithFormat:@"%@",[FSASelectView class]] owner:self options:nil] objectAtIndex:0];
    selectView.delegate = self;
    [selectView configurePickerViewWithData:ds];
    selectView.frame = CGRectMake(0, self.view.bottom   50, selectView.width, selectView.height);
    selectView.alpha = 0.9;
    [self.view addSubview:selectView];
    [UIView animateWithDuration: 0.25 delay: 0 options:UIViewAnimationOptionAllowUserInteraction |UIViewAnimationOptionCurveEaseInOut animations:^{
                            selectView.frame = CGRectMake(0, self.view.bottom - selectView.height, selectView.width, selectView.height);
                            selectView.alpha = 1;
                        } completion:^(BOOL finished) {
                        }];

Doğru uygulama hala aranıyor

Bu görünüm, bir denetleyici kullanarak ve uç adı ile açılış yapılmalıydı? Kodda bazı UİView hazırlama yöntemi uç ayarlamak zorundayım? Ya Tamam ben ne yaptım?

CEVAP
14 Mart 2013, PERŞEMBE


MyViewClass* myViewObject = [[[NSBundle mainBundle] loadNibNamed:@"MyViewClassNib" owner:self options:nil] objectAtIndex:0]

Bu.. ben yeniden kullanılabilir özel görünümler yeniden kullanıyorum


Kullanabileceğinizi unutmayın< . "" . firstObject ^güçlü sonunda, biraz daha temiz. "firstObject" NSArray ve NSMutableArray için kullanışlı bir yöntemdir.

İşte tipik bir örnek, bir tablo başlığı olarak kullanmak için bir xib yükleme. Dosya YourClass.m

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
    {
    UIView *view = [[[NSBundle mainBundle]
        loadNibNamed:@"TopArea"
        owner:self options:nil]
         firstObject];
    return view;
    }

Normalde - TopArea.xib Dosya Sahibi üzerine tıklayın vedosya sahibi YourClass için ayarlayın. O zaman aslındaYourClass.hİBOutlet özellikleri olurdu. TopArea.xib, bu noktalar için denetimleri sürükleyebilirsiniz.

TopArea bunu unutma.xib, gerekebilirGörünüm kendisi tıklayınve bir satış için sürükleyin, gerekirse, kontrol edin. (Çok değerli bir ipucu tablo hücre satır için bunu yaparken, kesinlikle öyle yapıyorsun görünümü bağlanmak zorunda kodunuzu ilgili mülkiyet kendisi için.)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 30GB

    30GB

    14 AĞUSTOS 2006
  • NYLON Video

    NYLON Video

    11 Aralık 2006
  • ŠĩŗĜŕôŵåɭȍҭҭ

    ŠĩŗĜŕô

    29 Kasım 2009