2014-12-08 16 views
7

Czy można dodać niestandardowe UIView z autolayout do iCarousel?Dodawanie niestandardowego UIView z autolayout do iCarousel

Jeśli próbuję ustawić ograniczenia gdy zwyczaj widok jest tworzony w iCarousel metody delegata

-(UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view 

aplikacja rozbitego ponieważ ograniczenia mogą być dodawane gdy widok jest dodawany do SuperView ale w tym momencie nie jest.

Mam nowe xib do widoku niestandardowego. Problem polega na tym, że mój niestandardowy widok jest zbyt duży, aby zmieścić się w iCarousel na iPhonie, nie mam problemu z ułożeniem widoków w moim widoku niestandardowym, ale mam problem z dopasowaniem widoku niestandardowego w iCarousel, ponieważ nie wiem, gdzie ustawić ograniczenia ponieważ nie można ustawić ograniczeń sadowych w "viewForItemAtIndex", ponieważ widok nie ma podglądu w tym punkcie:

+0

'setTranslatesAutoresizingMaskIntoConstraints' do' FALSE gdy dodany do super-view. – Kampai

+0

Ja już to zrobiłem – NFilip

Odpowiedz

3

Powinieneś spróbować dodać ograniczenia do widoku iCarousel nie dla viewForItemAtIndex. Jeśli komponenty wewnątrz widoku wymagają ograniczeń, może być konieczne utworzenie widoku w nowym pliku XIB z ograniczeniami i wywołanie tego widoku w metodzie viewForItemAtIndex. Natknąłem się na ten sam problem i rozwiązałem go w ten sposób.

- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSInteger)index reusingView:(UIView *)view 
{ 
    CTProductDetailsInMapView *productView; 

    if (view == Nil) 
    { 
    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CTProductDetailsInMapView" owner:self options:nil]; 
    productView = (CTProductDetailsInMapView *) [nib objectAtIndex:0]; 
    } 
    else 
    productView = (CTProductDetailsInMapView *)view; 
} 
return productView 

}

CTProductDetailsInMapView jest podklasą UIView realizowane w pliku interfejsu. Tutaj wszystkie komponenty mają ograniczenia i działają poprawnie.

+0

Mam nowe xib dla widoku niestandardowego. Problem polega na tym, że mój "CTProductDetailsInMapView" jest zbyt duży, aby zmieścić się w iCarousel na iPhonie, nie mam problemu z ułożeniem widoków w moim "CTProductDetailsInMapView", ale mam problem z dopasowaniem "CTProductDetailsInMapView" w iCarousel, ponieważ nie wiem gdzie ustaw ograniczenia, ponieważ nie można ustawić ograniczeń "smutnych" w "viewForItemAtIndex", ponieważ widok nie ma podglądu w tym punkcie. – NFilip

+0

spróbuj [view setClipsToBounds: YES] w karuzeli "viewForItemAtIndex" –

+0

, a także productView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; –

0

Moje rozwiązanie było utworzenie frame.size.width/height jak:

// current view is view from xib 
// don't set frame, just sizes 
currentView.frame.size.width = 100 // or other value 
currentView.frame.size.height = 100 // or other value 

return currentView 

Nadzieja pomaga komuś

Powiązane problemy