小米卡套餐的3元手机卡怎么样

iOS开发-设置在使用NavigateController时View的顶部位置
时间: 08:06:21
&&&& 阅读:300
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&& 
最近我在开发中遇到了一个问题,在使用NavigationController时内部的ViewController的View总是与屏幕顶部对齐,而我们有时候不需要这种效果:
在开发过程中,我们可能会需要这种布局:
需要加这句话,意思是让View的所有边都紧贴在容器内部。
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&原文:/zeyang/p/4496322.html
教程昨日排行
&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!主题 : 如何让UIViewController焦点回到顶部??
级别: 侠客
可可豆: 659 CB
威望: 659 点
在线时间: 75(时)
发自: Web Page
来源于&&分类
如何让UIViewController焦点回到顶部??&&&
学开发iphone两星期了,现帮公司改iphone的bug。我用Nav的布局,有两个页面,列表页面和详细页面(列表页面很长,问题的关键),点列表页面底部的一个按钮进入了详细页面,现在我在详细页面什么也没做,就返回列表页面,但是我想它的焦点回到顶部,而不是底部,应该怎么去设置呢,查了下,如果是继承于UITableView就很好做,因为tableview有个scrollToTop方法可以重写,但是如果继承UIView就有点麻烦了,有谁知道怎么玩的不
级别: 侠客
可可豆: 659 CB
威望: 659 点
在线时间: 75(时)
发自: Web Page
没有人遇到过这样的问题吗?
级别: 骑士
UID: 60059
可可豆: 2432 CB
威望: 2046 点
在线时间: 149(时)
发自: Web Page
你的列表用的什么类
级别: 骑士
可可豆: 1317 CB
威望: 1317 点
在线时间: 205(时)
发自: Web Page
有这么一个笨方法:在返回的时候,重新生成一次那个列表这样应该会直接显示顶部。问个问题,你用UIView怎么让它变得很长很长?
级别: 侠客
可可豆: 659 CB
威望: 659 点
在线时间: 75(时)
发自: Web Page
回 2楼(yuzhouwww) 的帖子
列表页面继承UIViewController,里面有选项卡,选项卡里面有一般的UIView,有UITableView,等,就是一个比较复杂的股票交易的页面,所以东西比较多。现在的问题就是说用户在某个选项卡(里面显示内容多,有一个半屏幕长)里面,滚下列表,然后进入对应类似于详细页面,再返回的时候,这个列表页面还是停留在之前他进入的状态,显示底部,顶部看不到。就是这么个问题
级别: 侠客
可可豆: 659 CB
威望: 659 点
在线时间: 75(时)
发自: Web Page
回 3楼(sagles) 的帖子
也不是很长很长,一般只有一个半屏幕那么长吧,没个用户根据自己的交易信息,显示的长度不同,你知道的。现在QA提的一个Bug就是:当在列表页面的底部选链接进入详细页面,再回来,列表页面还是显示在原来的位置,顶部的信息看不到(其实从我们开发角度来说,这是完全正常的)。意思是我们必须再把焦点移到顶部
级别: 精灵王
UID: 54474
可可豆: 3655 CB
威望: 3652 点
在线时间: 1041(时)
发自: Web Page
其实有一个很简单的方法,如果你得应用里面最上面的状态栏(就是现实电池电量那个BAR)还在的话,点一下这个bar,列表就自动滚到最顶端了
级别: 侠客
可可豆: 659 CB
威望: 659 点
在线时间: 75(时)
发自: Web Page
回 6楼(coco89718) 的帖子
好像也不行,呵呵,用其他办法实现了,谢谢各位了
关注本帖(如果有新回复会站内信通知您)
苹果公司现任CEO是谁?2字 正确答案:库克
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 浏览移动版主题 : 无法让 tableview 回到最顶端
级别: 骑士
UID: 119701
可可豆: 1251 CB
威望: 1247 点
在线时间: 376(时)
发自: Web Page
来源于&&分类
无法让 tableview 回到最顶端&&&
我有个 viewA 里头有一个 buttonA, 一个tableview, 上面放一个 containerview, containerview 上面放3个buttonB。平常 containerview 隐藏,当点击buttonA之后,containerview才显示,当 user 点击buttonB之后,更新tableview。我的问题是如果user卷动tableview,程式在执行[TableView reloadData]; 之后并不会回到最顶端。viewA.h@interface viewA : UIViewController{    IBOutlet UIView *vM}-(IBAction)TOP2TXT:(uint)uiI1;viewA.m@interface TextView (){    uint uiTXTNo;}- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{    if ([segue.identifier isEqualToString:@&segueTOP&]) {        TopView *topic=(TopView*)segue.destinationViewC        topic.previousViewControll=    }}-(IBAction)TOP2TXT:(uint)uiI1{    uiTXTNo=uiI1;    vMain.hidden= YES;        [TableView reloadData];        [TableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]         animated:NO scrollPosition:UITableViewScrollPositionTop];        //jTableView.scrollsToTop=YES;}-(IBAction)ClickTOP:(id)sender{    vMain.hidden=NO;}containerview.h@property(nonatomic,strong)id previousViewCcontainerview.m#import &viewA.h&-(IBAction)ClickTopic:(id)sender{    UIButton *btn=(UIButton*)    viewA *txt=(viewA*)self.previousViewC    [txt TOP2TXT:(uint)btn.tag];}原本我goole 了一下,有怀疑是 UI 卡住,但执行过 TOP2TXT 回来后 tableview 的操作又都正常,也能正确显示我所需要的资料。请问大神我该如何让 [TableView reloadData]; 之后能回到顶端?[ 此帖被jtain在 16:42重新编辑 ]
MAC mini(OS X 10.12) + Xcode 7.3.1
级别: 骑士
UID: 363290
可可豆: 469 CB
威望: 416 点
在线时间: 808(时)
发自: Web Page
跳转到uitableview固定位置
我是一只菜菜菜菜鸟,怎么飞也想飞得更高!
级别: 骑士
UID: 119701
可可豆: 1251 CB
威望: 1247 点
在线时间: 376(时)
发自: Web Page
有啊!我有加上 [TableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]        animated:NO scrollPosition:UITableViewScrollPositionTop];但还是无反应,只是纯粹的更新了显示的资料
MAC mini(OS X 10.12) + Xcode 7.3.1
级别: 骑士
UID: 119701
可可豆: 1251 CB
威望: 1247 点
在线时间: 376(时)
发自: Web Page
啊!我刚刚因为楼上的提醒想到 我是使用 selectRowAtIndexPath,换一个 scrollToRowAtIndexPath 之后果然可以了。&&&&&&&&[TableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] atScrollPosition:UITableViewScrollPositionTop animated:NO];
MAC mini(OS X 10.12) + Xcode 7.3.1
级别: 侠客
UID: 331913
可可豆: 408 CB
威望: 345 点
在线时间: 526(时)
发自: Web Page
- (void)scrollToRowAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UITableViewScrollPosition)scrollPosition animated:(BOOL)用这个方法试试
级别: 骑士
UID: 119701
可可豆: 1251 CB
威望: 1247 点
在线时间: 376(时)
发自: Web Page
可以了,谢谢...:D
MAC mini(OS X 10.12) + Xcode 7.3.1
级别: 精灵王
UID: 523182
可可豆: 2151 CB
威望: 1815 点
在线时间: 695(时)
发自: Web Page
uitableview继承与uiscrollview,直接滚动到顶端也是可以的吧
级别: 新手上路
UID: 68284
可可豆: 92 CB
威望: 90 点
在线时间: 211(时)
发自: Web Page
&&&&[UITableView setContentOffset:CGPointMake(0, 0) animated:YES];
级别: 新手上路
UID: 284054
可可豆: 220 CB
威望: 158 点
在线时间: 132(时)
发自: Web Page
直接回到顶部用这个 [UITableView setContentOffset:CGPointZero animated:YES];- (void)scrollToRowAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UITableViewScrollPosition)scrollPosition animated:(BOOL)这个一般是你想滑动到具体的某一行,但是indexPath需要特别注意。
级别: 新手上路
UID: 519440
可可豆: 47 CB
威望: 36 点
在线时间: 231(时)
发自: Web Page
在viewDidLoad里加self.automaticallyAdjustsScrollViewInsets = NO;
关注本帖(如果有新回复会站内信通知您)
苹果公司现任CEO是谁?2字 正确答案:库克
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 浏览移动版iOS 开发技巧 - UIViewController不让导航栏遮挡控件 - 简书
iOS 开发技巧 - UIViewController不让导航栏遮挡控件
想必大家都遇到一种情况,明明y坐标设置的是0,但是总是被讨厌的导航栏给遮住。比如下面这个情况:
昨天写程序遇到一个小情况,明明y坐标设置的是0 ,但是却被导航栏给挡住了。
比如下面这种情况:
先创建测试用label
UILabel *testLabel = [[UILabel alloc] init];
testLabel.frame = CGRectMake(25, 0, self.view.bounds.size.width - 50, 86);
testLabel.text = @"测试用,你别挡住我";
testLabel.textAlignment = NSTextAlignmentC
testLabel.backgroundColor = [UIColor blueColor];
testLabel.textColor = [UIColor orangeColor];
[self.view addSubview:testLabel];
运行看效果:
是不是很不友好呢?
还好,再iOS7 之后,UIViewController 引入了一个新的属性:edgesForExtendedLayout 。这个属性默认值是UIRectEdgeAll 。当你的容器是UINavigationController 的时候,默认的布局就是从状态栏的顶部开始的,所以就被导航栏给遮挡住了。
@property(nonatomic,assign) UIRectEdge edgesForExtendedLayout NS_AVAILABLE_IOS(7_0); // Defaults to UIRectEdgeAll
有问题,必有能解决!
方法有两种: 方法一: 修改edgesForExtendedLayout
self.edgesForExtendedLayout = UIRectEdgeN
将edgesForExtendedLayout属性设置为UIRectEdgeNone,这样布局就是从导航栏下面开始了。设置之后,再来看看效果:
控件完美呈现。
方法二: 导航栏半透明属性设置为NO
@property(nonatomic,assign,getter=isTranslucent) BOOL translucent NS_AVAILABLE_IOS(3_0) UI_APPEARANCE_SELECTOR; // Default is NO on iOS 6 and earlier. Always YES if barStyle is set to UIBarStyleBlackTranslucent
在iOS 6之前(包括iOS 6)translucent默认就是NO,在iOS 7之后就默认是YES了。
self.navigationController.navigationBar.translucent = NO;
将导航栏的包透明属性设置为NO之后,控件也能完美呈现了。
效果图和上面一样。
学到就是赚到
学习并记录,前进并成长.如何给UIViewController瘦身
招聘信息:
随着程序逻辑复杂度的提高,你是否也发现了App中一些ViewController的代码行数急剧增多,达到了2、3千行,甚至更多。这时如果想再添加一点功能或者修改现有逻辑变得让人无比头疼。如果你遇到了这类问题,那是时候停下来了,思考一下如何更好地组织代码,给VC瘦身。本文将会阐述如何结合MVC的思想帮你的VC瘦身同时提高复用和可扩展性。一、开发中常见的现象和缺点iOS中最常见的一种设计模式就是MVC,但在实际开发过程中,我们因为这样、那样的原因让单纯的ViewController变成了集Model,Controller以及View的一个大集合,这样势必就会导致VC的代码容量呈几何增长。这样的代码会存在以下几个问题:1、不利于后续维护代码在一个公司的存活时间通常远长于你在公司的时间,你是否也在接手现有项目以后边看代码边在心里默念“a piece of shit”,我想没有一个人希望之后接手你代码的人有一天看你代码的时候也在心里默念着同样的话。作为一个有追求的程序员,或者说为了不被以后的同事骂,我们必须要为自己的代码负责,避免动辄就是几千行的一个源文件。你自己写的都不愿因看,更何况后续接手的人呢。如果项目进度很赶,当时没有时间对代码进行合理的拆分和重构,后续也一定要抽出时间来填一下自己挖的坑。你可能会说,公司一直都很忙没有时间留给你去重构。我只能说要不就是你自己不会安排时间,要不就是这个公司只把你当代码搬运工。站在长远发展的角度上,要么改变自己,要么炒了老板。2、不利于支撑UI的变动试想如果有一天你们的App的UI风格需要改变,大量的View需要改变,在一个几千行的VC中删删改改是什么感受。可能因为改动UI的时候一个不留神错改了Model或者Controller的东西,导致程序都不能正常运行。而且改动的范围不能控制在一个较小的范围,测试回归起来的工作量也是很大的。3、不利于复用如果你的App一开始只支持iPhone版本,所有的一切都那么自然,程序也运行的很好。突然有一天老板告诉你说公司业务发展的不错,为了扩大市场需要退出iPad版,这个时候如果仅仅只是iPhone版本的放大版,那么你需要做的可能就是添加一些view的自适应就好了。但现实并不总是理想,如果iPad版的需要重新设计,按钮的位置都变动了(参考上面的第二点),这个时候难道需要把所有的代码都改一遍?这尼玛工作量也太巨大了吧。通常iPhone版本和iPad版本不管UI怎么变,业务逻辑只是基本相同的,那么如果当初我们的代码层级比较清晰,是不是Controller和Model层就可以完美的复用呢,针对不同的版本换一套View即可,这个是不是方便多了,自己感受一下。二、如何解决这些问题第一部分说了这么多终于点题了,如何使用MVC模式更好的给VC瘦身,提高复用性和可维护性呢?我画了下面一个图:解释一下上面这幅图,一个完整的模块被分为了三个相对独立的部分,分别是Model,View,Controller,对应到我们App中的依次为继承自NSObject的数据中心,承载UI展示和事件响应的View以及我们最最常用的UIViewController。其中VC持有View和Model部分,View通过代理或者Target-Action的方式把用户的操作传递给VC,VC负责根据不同的用户行为做出不同响应。如果需要加载或刷新数据则直接调用Model暴露的接口,如果数据可以同步拿到,则直接使用获取到的数据刷新View。如果数据需要通过网络请求等其他异步的方式获取,VC则通过监听Model发出的数据更新(成功或失败)通知,在收到通知时根据成功或者失败对View进行相应的刷新操作。可以看出来整个过程中View和Model是没有直接交互的,所有的操作都是通过VC进行协调的。进过MVC分层的好处:1、VC代码量骤降,易于维护可以看到拆分后VC中就仅剩下事件的响应操作了,所有显示相关的东西都被单独抽取出来,所有的网络请求以及数据缓存都被提取到出去了。VC中的代码会大幅度减少,在我们项目中的实践结果为:拆分前一个VC的代码行数为2600行,拆分后VC的代码行数仅剩不到600行。2、复用性提高拆分后如果App需要对UI展示进行大改,那么你的改动基本上都会停留在View模块中,你可以选择在现有的基础上改,也可以选择从写一个。只要业务不变的话,Model和VC模块完全不需要修改。这样改动的范围较小,对开发和测试都比较友好。拆分后如果App需要支持iPad版本,那么你需要做的就只是重写一个View然后放进去就好了,Model和VC模块同样基本上不要做任何修改,想想是不是还有点儿小激动呢。三、总结使用MVC模式可以达到帮VC瘦身,可以到到提高复用性和可维护性的效果,同时也会让原本一个整体的业务代码,分散到各个不同的地方。实际使用中我们需要具体问题具体分析,如果一个VC中的东西本身就很简单,那么完全可以放在一起,因为即使全部放在一起也就几百行代码。例如App中常见的Copyright界面,本身就是加载一个html就搞定了,就完全没必要搞得那么复杂;如果一个VC已经很复杂,代码动辄几千行了,那么就需要拆分,达到更好的复用以及方便维护的目的。写了几年代码了,见过所有东西都往一个源文件里面塞的,也见过一个本就很简单的东西被设计模式搞的四分五裂的,不要为了用设计模式而用设计模式。把握好度很重要,能用子弹解决的问题就不要动大炮。代码重构应该是一个持久的过程,在开发的过程中就时不时的对现有不合理的地方进行重构,而不是等待问题已经很多了才想起重构来。千里之行始于足下,千里之堤溃于蚁穴。(来源:)
微信扫一扫
订阅每日移动开发及APP推广热点资讯公众号:CocoaChina
您还没有登录!请或
点击量6393点击量5834点击量3888点击量3865点击量3842点击量3810点击量3756点击量3145点击量3118
&2016 Chukong Technologies,Inc.
京公网安备89

我要回帖

更多关于 手机卡 的文章

 

随机推荐