Проблема множителя автопоставки iCarousel
Я пытаюсь использовать множители на макете iCarousel, но они, похоже, не оказывают никакого влияния. Это мой код:
_carousel = [[iCarousel alloc]init ];
self.items = [NSMutableArray array];
for (int i = 0; i < 10; i++)
{
[_items addObject:@(i)];
}
_carousel.type = iCarouselTypeCylinder;
_carousel.delegate = self;
_carousel.dataSource = self;
_carousel.translatesAutoresizingMaskIntoConstraints = false;
[self.view addSubview:_carousel];
[_carousel.centerXAnchor constraintEqualToAnchor:self.view.layoutMarginsGuide.centerXAnchor].active = true;
[_carousel.bottomAnchor constraintEqualToAnchor:self.view.layoutMarginsGuide.bottomAnchor constant:-80].active = true;
[_carousel.widthAnchor constraintEqualToAnchor:self.view.widthAnchor multiplier:40.0/100.0].active = true;
[_carousel.heightAnchor constraintEqualToAnchor:self.view.heightAnchor multiplier:30.0/100.0].active = true;
Я также заметил, что если ввести постоянное значение, скажем, -20 в:
[_carousel.bottomAnchor constraintEqualToAnchor:self.view.layoutMarginsGuide.bottomAnchor constant:-20].active = true;
iCarousel опускается значительно ниже нижней точки просмотра, и я не знаю почему?
Кто-нибудь может ответить на это, пожалуйста, прости меня, если я что-то упустил, поскольку я новичок в программных макетах.
1 ответ
Вы должны переопределить и переместить свой код в loadView
чтобы избежать того, чтобы механизм автоматической компоновки генерировал ограничения прототипирования. Например:
- (void) loadView
{
[super loadView];
_carousel = [[iCarousel alloc]init ];
self.items = [NSMutableArray array];
for (int i = 0; i < 10; i++)
{
[_items addObject:@(i)];
}
_carousel.type = iCarouselTypeCylinder;
_carousel.delegate = self;
_carousel.dataSource = self;
_carousel.translatesAutoresizingMaskIntoConstraints = false;
[self.view addSubview:_carousel];
[_carousel.centerXAnchor constraintEqualToAnchor:self.view.layoutMarginsGuide.centerXAnchor].active = true;
[_carousel.bottomAnchor constraintEqualToAnchor:self.view.layoutMarginsGuide.bottomAnchor constant:-80].active = true;
[_carousel.widthAnchor constraintEqualToAnchor:self.view.widthAnchor multiplier:40.0/100.0].active = true;
[_carousel.heightAnchor constraintEqualToAnchor:self.view.heightAnchor multiplier:30.0/100.0].active = true;
}
В общем loadView
где вы хотите программно добавить подпредставления к UIViewController
подкласс.