我使用UIScrollView作为分页滚动视图pagesScrollView 。 里面,我把个别UIScrollViews专门用于缩放。 在每个内部,我有一个视图,这是应该是可缩放的页面项目。 所有这一切都在一个带有半透明导航栏的UINavigationController中。 我pagesScrollView有contentInset.top = 64和bounds.origin.y = -64 (这似乎很奇怪,但这就是系统自动设置为我),这工作得很好。 我的屏幕看起来不错! 然而,在scrollViewWillEndDragging调用scrollViewWillEndDragging之后, scrollViewWillEndDragging会从bounds.origin.y = -64开始animation变化为bounds.origin.y = 0 ,这会导致我的页面项目被遮挡由导航栏。 左边是加载时的样子,右边是拖动几个像素后的样子,然后放开,在导航栏下滑动(因为bounds.origin.y会变成0) 。 问题是,我没有任何代码正在改变的界限,我没有任何代码在各种滚动委托方法做任何事情。 我已经添加了一堆滚动委托方法,只是添加了NSLog(),所以我可以找出更改发生的时间/地点,但是这不会发生在我的代码中的任何地方。 所以,我不知道我可以告诉你什么样的代码来帮助你。 编辑:我从头开始build立一个新的项目,删除所有其他variables..我把一个裸UIViewController到一个UINavigationController。 我把一个UIScrollView放到我的View中,查看整个视图的大小。 以下代码是整个项目。 事实certificate,这个问题(下面描述)只有在UIScrollView上的PAGING被启用后才会出现! 跆拳道? 🙂 这里是一个链接,下载一个基本的项目,只有几行代码来演示这个问题。 只要点击滚动视图,你会看到它随着边界的变化而变化。 http://inadaydevelopment.com/stackoverflow/WeirdScrollViews.zip 我怎么可以在我的滚动视图上启用分页,而不会在滚动和移动导航栏下的所有内容时出现界限? 可以将导航栏设置为不透明,避免出现问题,但理想情况是具有标准的iOS7行为,以便在内容视图放大后,允许内容位于导航栏下方,并通过半透明正常显示。 – (void) viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; NSArray *colors = @[ [UIColor blueColor], [UIColor orangeColor], [UIColor magentaColor], ]; NSArray *zoomerColors = […]
这个代码运行良好,直到iOS 7发布。 我分配一个UIViewController ,与hidesBottomBarWhenPushed为YES ,作为UINavigationController的rootViewController 。 但TabBar正在显示。 以下是相关的代码: Login *lv = [[Login alloc] init]; lv.HowToUseShows = showHowToUse; lv.hidesBottomBarWhenPushed = YES; UINavigationController *BokShelfNav = [[UINavigationController alloc] initWithRootViewController:lv]; //… UITabBarController *tbController = [[UITabBarController alloc] init]; tbController.viewControllers = @[BokShelfNav,…]; 任何人有类似的问题?
对于iOS 7,苹果公司做了一个特殊的修改版本的Helvetica Thin / Light,它有四舍五入的周期和冒号: 比较这个在Xcode中使用Helvetica-Neue Thin或Helvetica-Neue Light: 是否有可能开发具有圆形冒号和句点的特殊修改版本的应用程序? 编辑 :发现这些圆的冒号和时期不是由苹果定制devise的,他们是“字符替代”,你可以看到他们在你最喜欢的字体字形查看器。
自iOS 7推出以来,我无法像iOS 6那样显示或隐藏状态栏。现在我使用NSTimer来控制它何时隐藏。 这里是我的代码: – (void)hideStatusBar{ _isStatusBarHidden=YES; [self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)]; } – (void)showStatusBar{ _isStatusBarHidden=NO; [self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)]; } //=================== _controlVisibilityTimer = [[NSTimer scheduledTimerWithTimeInterval:4 target:self selector:@selector(hideStatusBar:) userInfo:nil repeats:NO] retain]; 但不幸的是,状态栏隐藏的方式似乎有点粗糙,没有消失。 有人在这里有一个解决scheme? 更新 我解决了隐藏的问题,使用@hahaha解决scheme。 我只需要一个视图作为状态栏的背景,这里是我的代码。 AppDelegate* appDelegate = (AppDelegate*)[[UIApplication sharedApplication]delegate]; self.StatusBarOrange = [[UIView alloc] initWithFrame:CGRectMake(0, 0, appDelegate.window.frame.size.width, 20)]; [self.StatusBarOrange setBackgroundColor:[UIColor orangeColor]]; [appDelegate.window.rootViewController.view addSubview:self.StatusBarOrange]; 现在一切正常!
问题: 我有我的UINavigationBar和UITabBar之间的UIWebView 。 在iOS 7上,当应用程序进入后台并再次返回时, UIWebView的contentSize属性会发生变化,从而在其上方会出现一个白色块。 在监视UIWebView的contentSize之后,当应用程序进入前台(我通过观察UIApplicationDidBecomeActiveNotification检查它),它从它的高度减去了49。 屏幕截图(编辑敏感信息): 我的设置: 我在我的UIViewController中使用一个UIWebViewembedded在UINavigationControllerembedded的UITabBarViewController 。 我正在使用故事板,并具有“调整滚动查看插图”,“从NIB调整视图”和“延长边下烟条”上。 在UIWebView我没有选中“缩放页面适合”。 我没有在viewDidAppear或viewWillAppear方法中做任何事情。 我在iOS 6上进行了testing,问题不在那里发生。 另外,我没有使用自动布局。 相关编码: self.webView.scrollView.scrollEnabled = NO; self.webView.scrollView.bounces = NO; self.webView.scalesPageToFit = NO; 监控contentSize&frame in viewDidAppear & appHasGoneInForeground : 帧从320×455到320×455,contentSize从320×504到320×455 有没有人有一个想法,我在这里失踪和/或为什么发生这种情况? 谢谢你的时间!
经过Google,Stackoverflow和苹果文档的search后,我几乎放弃了。 我正在制作一个应用程序来索引用户,由于潜在的很长的列表,我使用部分索引更快地导航。 我的问题如下图所示。 当我拖动一个项目来显示删除button,它是部分隐藏在我的部分索引栏下面。 我没有代码设置tableview或tableviewcells宽度和部分索引不能真正改变,就我而言。 编辑: 问题是我如何才能让tableview单元格在重叠之前结束,因此删除button是完全可见的。 编辑2: 我已经尝试设置更小的单元格没有任何运气。 cell.frame = CGRectMake(cell.frame.origin.x, cell.frame.origin.y, cell.frame.size.width-30, cell.frame.size.height); 我也尝试过与tableview相同,但它是在UITableViewController它不能被resize。 self.tableView.frame = CGRectMake(self.tableView.frame.origin.x, self.tableView.frame.origin.y, self.tableView.frame.size.width-30, self.tableView.frame.size.height);
我有一个奇怪的问题,我必须在setAutomaticallyAdjustsScrollViewInsets:不起作用的情况下使用topLayoutGuide方法。 为了缩小问题的原因,我创build了以下最简单的示例,它只是设置了一个基本的表视图来进行testing: 在Xcode中设置一个新的iOS Single View应用程序。 将以下代码粘贴到ViewController.m的实现中: @implementation ViewController – (void)loadView { [self setTableView:[[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]]; } – (void)viewDidLoad { [super viewDidLoad]; [self setAutomaticallyAdjustsScrollViewInsets:NO]; // [*] } – (void)viewDidLayoutSubviews { UITableView *tableView = [self tableView]; UIEdgeInsets insets = [tableView contentInset]; // insets.top = [[self topLayoutGuide] length]; // [1] // insets.top = 100; // [2] [tableView […]
我正在移植我的应用程序到iOS 7,我有iOS 7中的UIWebView的问题。我用这个代码加载本地的htmlstring: NSURL *baseURL = [NSURL fileURLWithPath: DOCUMENTS_DIRECTORY]; [self.descWebView loadHTMLString:html baseURL:baseURL]; 它可以在iOS 6和之前的版本中完美工作,但是在iOS 7上它不会呈现,UIWebView仍然是白色的。 而这个消息出现在控制台中: void SendDelegateMessage(NSInvocation *): delegate (webView:decidePolicyForNavigationAction:request:frame:decisionListener:) failed to return after waiting 10 seconds. main run loop mode: kCFRunLoopDefaultMode 感谢您的回复。
在iOS7.0.3 – 7.0.6上,我的searchBar颜色是这样的金色/黄色: 但在iOS 7.1上,颜色变成这样: 我设置 searchBar.tintColor = [UIColor clearColor]; searchBar.backgroundColor = goldColor; searchBar.tintColor = [UIColor blackColor]; 我尝试了很多方法,都失败了。 任何人都可以找出iOS 7.1中的变化吗? ==============我的修复程序=============== 我通过覆盖searchBar上的视图来解决这个问题,并在这个新视图上添加search文本字段作为子视图。 我需要指出的是,黄金状态栏是searchBar的子视图,它的框架是CGRectMake(0, -20, 320, 20) ,它的背景色是黄金。 起初,我设定了这个: _searchBar.translucent = YES; _searchBar.scopeBarBackgroundImage = [self imageWithColor:UWGold]; 看起来像这样: 然后,我展开视图覆盖状态栏,我改变了视图的frame.size.height + searchBar的高度,然后使用这一行: UITextField *textSearchField = [_searchBar valueForKey:@"_searchField"]; 获取textSearchField,然后将此textSearchField添加到封面视图。 最后,searchBar就像在iOS 7.0上一样 不是一个好方法,我需要找出iOS 7.1上的变化,并使用正确的方式来实现这一点。
我很困惑。 我有一个UICollectionView 。 我有我自己的UICollectionViewLayout子类(喵,我没有使用Flow的东西)。 UICollectionView实例是UIScrollView的子类。 它增加了多个子视图。 但像正确缩放包含许多子视图的UIScrollView的问题似乎表明,可滚动视图应该只有一个子视图“滚动整个视图”。 对我来说似乎是一种不一致的婚姻。 我的意思是为什么苹果给我一个多重子视图的框架,然后把它们全部放在滚动视图中,这不应该工作正常? 所以我很好奇我应该如何使我的整个UICollectionView (它在UICollectionViewController子类)可缩放。 我是否需要实现各种委托方法和无效/操作布局对象,根据我在布局中保留的某些属性派生布局? 还是有其他一些机制? 另外,为什么不能只是操纵zoomScale属性,并为我自动做呢? 或者我在这里错过了一些微妙之处?