我需要创建一个iBook主屏幕,以允许用户从封面视图布局中选择书籍。
我正在考虑使用垂直UIScrollView布局来放置UIImageView对象。这是一个好方法吗?
另一个重要问题是:当用户删除书籍并从屏幕上删除UIImageView对象时,如何使剩余的UIImageView对象重新组织并随动画一起移动?
使用最新的图书清单重新绘制UIScrollView是可以接受的,但是,没有动画可以显示UIImageview对象的移动和移动?
解决问题有什么好主意吗?
答案 0 :(得分:1)
你可以使用带有UIImageViews的NSMutableArray的UIScrollView,这样,当你删除/添加一本书时,你从数组中删除/添加它,然后通过观察者进行更改,你可以用动画重新排列uiimagesviews。需要的。
示例:
-(void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
if (object == self && [keyPath isEqualToString:@"ArrayofBooks"]) {
//Do animations here as needed
}
}
-(id)init {
//...Previous init
ArrayofBooks = [[NSMutableArray alloc] init];
[self addObserver:self forKeyPath:@"ArrayofBooks" options:0 context:NULL];
//...other init needed
}
这应该在你的UIScrollView上 它的作用是注册一个Mutable数组并为其上的变化设置一个观察者,然后第一个方法被观察者调用,你就做了。
编辑: 重要!,当您添加/删除对象时,您必须按以下方式执行此操作,否则观察者将无法看到它
[[self mutableArrayValueForKey:@"ArrayofBooks"] addObject:newBook];
[[self mutableArrayValueForKey:@"ArrayofBooks"] removeObject:newBook];