所以我有一个UITableView
.它的dataSource是NSArray
一个搜索后加载的自定义对象.当我滚动到底部时,一切正常,scrollIndicator
滚动到底部.
现在当我滚动回到顶部时,scrollIndicator在我的UINavigationbar下面停止大约50像素.
我不知道为什么这种行为只发生在这个tableViewController
,因为我UITabBarController
的5 UITableViewcontrollers
个继承自同一个超类.任何帮助表示赞赏,在此先感谢:)
编辑:
将以下代码放入 viewWillAppear:
self.tableView.scrollIndicatorInsets = UIEdgeInsetsMake(0, 0, 0, 0);
Run Code Online (Sandbox Code Playgroud)
解决了这个问题.虽然我仍然不知道为什么这个问题只发生在五个tableViewControllers中的一个...
我的应用程序中有以下数据模型:
基本上我想存储国家名称以及城市名称.每个城市属于一个国家,一个国家包含0到n个城市.
在我现在将新城市添加到某个国家/地区之前,我需要知道该国家/地区是否已包含具有此名称的城市.
到现在为止我这样做:
- (BOOL)countryForName:(NSString *)countryName containsCity:(NSString *)cityName {
Countries *country = [self countryForName:countryName];
NSSet *cityNames = [country valueForKey:@"cities"];
for (Cities *city in cityNames) {
if ([city.cityName isEqualToString:cityName]) {
return YES;
}
}
return NO;
}
Run Code Online (Sandbox Code Playgroud)
这显然非常慢,我需要的是具有正确谓词的等效提取.我执行搜索这样的一个实体:
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Countries" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
// Edit the sort key as appropriate.
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"countryName" ascending:YES];
NSArray *sortDescriptors = @[sortDescriptor];
fetchRequest.sortDescriptors = sortDescriptors;
// Edit the section name key path and cache name if appropriate.
// …
Run Code Online (Sandbox Code Playgroud) 所以我面临着在我的内部设置custum selectedBackgroundView的问题UITableViewCell
.
我的单元格contentView
基本上是一个UIView
(frame = 0,0,80,70),黑色背景和UIImageView
子视图.
imageView的 contentMode = UIViewContentModeScaleAspectFit;
这看起来像这样:
现在我像这样设置selectedBackgroundView:
//set the custom selected color
UIView *bgColorView = [[UIView alloc] init];
bgColorView.backgroundColor = MY_TINT_COLOR;
CGColorRef darkColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha: 0.25].CGColor;
CGColorRef lightColor = [self.view.backgroundColor colorWithAlphaComponent:0.0].CGColor;
//setting some gradients here
//should not be relevant for the question
[cell setSelectedBackgroundView:bgColorView];
Run Code Online (Sandbox Code Playgroud)
这导致如下所示:
我现在的问题是selectedBackgroundView
隐藏黑色部分的原因是contentView
什么?
我已经尝试bgColorView
用一个帧开始初始化我x = 80
,但这并没有改变任何东西.
此外,我曾试图显式设置backgroundColor
的imageView
黑色,同样的结果.
什么可能导致这种行为?
长敲击检测后如何开始移动?使用uilongpressgesturerecognizer进行长时间检测.我的代码:
`- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
flMoveRow = NO;
[self setEditing:YES animated:YES];
[listView reloadData];
}
- (void)longTapGesture:(UILongPressGestureRecognizer *)sender{
if((sender.state != UIGestureRecognizerStateEnded)&&(!flMoveRow)){
NSLog(@"==longTapGesture:");
flMoveRow = YES;
[listView beginUpdates];
NSArray *indexPaths = [[NSArray alloc] initWithObjects:indexPath, nil];
[listView reloadRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationNone];
[listView endUpdates];
sender.enabled = NO;
return;
}
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath{
NSLog(@"==canMoveRowAtIndexPath:%i -- %d", indexPath.row, (int)flMoveRow);
return flMoveRow;}`
Run Code Online (Sandbox Code Playgroud)
打破触摸.谢谢.
objective-c ×3
uitableview ×3
ios ×2
iphone ×2
core-data ×1
nspredicate ×1
one-to-many ×1
scroll ×1
uiimageview ×1