正如标题所暗示的那样,我UICollectionView在调用后不会立即更新并显示单元格reloadData.相反,它似乎最终在30-60秒后更新我的集合视图.我的设置如下:
UICollectionView添加到查看故事板控制器与两个delegate和dataSource设置为视图控制器和标准出口设置
numberOfSectionsInRow&cellForItemAtIndexPath都实现并引用原型细胞和imageView在它的内部
以下是转到Twitter的代码,获取时间轴,将其分配给变量,使用推文重新加载表格视图,然后通过推文查找照片并使用这些项目重新加载集合视图.
即使我注释掉显示图像的代码,它仍然不会改变任何东西.
SLRequest *timelineRequest = [SLRequest requestForServiceType:SLServiceTypeTwitter requestMethod:SLRequestMethodGET URL:timelineURL parameters:timelineParams];
[timelineRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
if(responseData) {
JSONDecoder *decoder = [[JSONDecoder alloc] init];
NSArray *timeline = [decoder objectWithData:responseData];
[self setTwitterTableData:timeline];
for(NSDictionary *tweet in [self twitterTableData]) {
if(![tweet valueForKeyPath:@"entities.media"]) { continue; }
for(NSDictionary *photo in [[tweet objectForKey:@"entities"] objectForKey:@"media"]) {
[[self photoStreamArray] addObject:[NSDictionary dictionaryWithObjectsAndKeys:
[photo objectForKey:@"media_url"], @"url",
[NSValue valueWithCGSize:CGSizeMake([[photo valueForKeyPath:@"sizes.large.w"] floatValue], [[photo …Run Code Online (Sandbox Code Playgroud) 我使用以下代码为UINavigationBar创建了一个类别:
// UINavigationBar+MyNavigationBar.m
@interface UINavigationBar (MyNavigationBar)
@end
@implementation UINavigationBar (MyNavigationBar)
- (void)drawRect:(CGRect)rect
{
UIImage *img = [UIImage imageNamed: @"header.png"];
[img drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
@end
Run Code Online (Sandbox Code Playgroud)
我没有在任何地方#import,在我的整个项目的任何代码中,但是,此类别仍在运行并插入标题图形.这怎么可能?
当我使用新的部分和行更新状态时,我有一个React Native ListView似乎正在删除UI中的错误行 - 我删除的行保留,但是下面的那个,有时甚至是2,直到我重新加载应用程序.
我究竟做错了什么?
constructor(props) {
super(props)
this.state = {
dataState: DataState.STATE_NOT_LOADED,
dataSource: new ListView.DataSource({
rowHasChanged: (r1, r2) => r1.identifier !== r2.identifier,
sectionHeaderHasChanged: (s1, s2) => s1 !== s2
})
};
}
componentDidMount() {
this.loadData();
}
loadData() {
this.setState({
dataState: DataState.STATE_LOADING
});
User.getDocs()
.bind(this)
.then(results => {
var docs = _.groupBy(results, function (d) {
return d.createdAt.format('MMMM D');
});
this.setState({
dataState: DataState.STATE_LOADED,
dataSource: this.state.dataSource.cloneWithRowsAndSections(docs)
});
})
.catch(error => {
console.log(error);
this.setState({
dataState: DataState.STATE_ERROR
});
});
}
onTrackPressed(doc) {
User.untrackDoc(doc) …Run Code Online (Sandbox Code Playgroud)