将自定义UIView与自动布局添加到iCarousel

是否有可能添加自定义UIView与iCarousel自动布局?

如果我尝试在iCarousel委托方法中创建自定义视图时设置约束

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

应用程序崩溃是因为可以在视图添加到超级视图时添加约束,但此时不是。

我有自定义视图的新xib。 问题是我的自定义视图太大而不适合iPhone上的iCarousel,我没有在我的自定义视图中安排视图的问题,但我有问题以适应iCarousel中的自定义视图,因为我不知道在哪里设置约束因为我悲伤的约束不能在“viewForItemAtIndex”中设置,因为视图在那个时候没有超视图


您应该尝试将约束添加到iCarousel视图而不是viewForItemAtIndex。 如果视图中的组件需要约束,则可能需要在具有约束的新xib文件中创建视图,并在viewForItemAtIndex方法中调用该视图。 我遇到了同样的问题,并通过这种方式解决了问题。

- (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是UIView在接口文件中实现的一个子类。 在这里所有的组件都给出了约束条件并正常工作。


我的解决方案是设置frame.size.width / height如下所示:

// 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

希望它对某人有帮助

链接地址: http://www.djcxy.com/p/23761.html

上一篇: Adding custom UIView with autolayout to iCarousel

下一篇: webkit