小编rpj*_*rpj的帖子

使用带有小型表的UITableViewController?

当使用UITableViewController时,initWithStyle:方法会自动创建底层的UITableView,根据文档 - "正确的尺寸".

我的问题是这些"正确的尺寸"似乎是320x460(iPhone的屏幕尺寸),但我将这个TableView/Controller对推入UINavigationController,它本身包含在UIView中,它本身大约是屏幕高度的一半.

没有框架或边界争论似乎可以正确地重置表的大小,因此它"太长",这意味着有一系列行被推出屏幕底部并且不可见也不可通过滚动.

所以我的问题归结为:告诉UITableViewController将其组件UITableView调整为指定矩形的正确方法是什么?

谢谢!

更新我尝试了这里建议的所有技术无济于事,但我确实发现了一件有趣的事情:如果我完全避开UINavigationController(我不愿意为生产而做,而是作为实验),并添加作为表视图直接我所提到的封闭视图的子视图中,给定的帧大小被推崇.在那一刻我再推出的UINavigationController混进去,不管是以前还是表视图后添加作为一个子视图,也不管之前或表视图添加作为一个子视图后,如果分配/初始化吧,结果和以前一样.

我开始怀疑UINavigationController不是团队合作者......

更新2在屏幕上的表格视图之后检查帧大小的建议很好:事实证明导航控制器实际上在加载和显示之间的某个时间调整大小.我的解决方案,最好是hacky,一直缓存加载时给定的帧,如果在tableView:cellForRowAtIndexPath:的开头更改,则重置它.你问为什么?因为它是我找到的一个有用的地方,这就是原因!

我不认为这是一个解决方案,因为它显然是不合适的,但为了其他任何阅读的好处,它似乎确实有效.

iphone cocoa-touch objective-c uitableview

15
推荐指数
2
解决办法
2万
查看次数

在UITableViewCell中更改UILabel的背景颜色

UITableViewCell是"预先构建的",UILabel是您初始化后的唯一子视图.我真的想改变所说标签的背景颜色,但无论我做什么,颜色都不会改变.有问题的代码:

UILabel* label = (UILabel*)[cell.contentView.subviews objectAtIndex:0];
label.textColor = [UIColor whiteColor];
label.backgroundColor = [UIColor darkGrayColor];
label.opaque = YES;
Run Code Online (Sandbox Code Playgroud)

cocoa-touch objective-c ios

11
推荐指数
2
解决办法
3万
查看次数

将现有的Git存储库推送到Github只会发送大约一半的提交?

我有一个本地Git存储库,我已经开发了几天:到目前为止它有18个提交.今晚,我创建了一个私有的Github存储库,我希望将其推送到; 然而,当我这样做时,它最终只将18个提交中的8个提交给Github.我删除了Github repo并重试,结果相同.

有关为什么会发生这种情况的任何想法?我之前没有成功完成这个程序,所以我有点难过.

更新:此回购中只有,而且一直只有主分支.只是为了解决一些已发布的答案......

git version-control github

9
推荐指数
2
解决办法
5428
查看次数

performSelectorOnMainThread的低级执行细节:

不知道是否有人知道,或有指向好的文档,讨论,可可的低层次的实现细节"performSelectorOnMainThread:"方法.

我最好的猜测,我认为可能非常接近,是它使用马赫端口或它们之上的抽象来提供线程内通信,将选择器信息作为mach消息的一部分传递.

对?错误?谢谢!

更新09:39 AMPST

感谢Evan DiBiase和Mecki的答案,但澄清一下:我理解运行循环中会发生什么,但我正在寻找答案的是; " 其中在方法得到排队?如何被选择器信息获取传递到队列?" 寻找超过Apple的文档信息:我读过他们

更新14:21PST

Chris Hanson在评论中提出了一个很好的观点:我的目标不是学习底层机制,以便在我自己的代码中利用它们.相反,我只是对更好地概念性地理解另一个线程执行代码的过程感兴趣.正如我所说的,我自己的研究使我相信,它的花费马赫通讯的优势,为IPC线程之间传递信息的选择,但我专门找了混凝土上发生了什么信息,所以我可以肯定我的理解事情正确.谢谢!

更新03/06/09

我已经开启了这个问题的赏金,因为我真的希望看到它得到回答,但如果你想收集请确保你阅读所有内容,包括所有当前提出的答案,对这些答案的评论和我原来的问题,以及我上面发布的更新文本.我正在寻找所用机制的最低级细节performSelectorOnMainThread:,正如我前面提到的,我怀疑它与Mach端口有关,但我真的很想知道.除非我能确认给出的答案是正确的,否则不会颁发赏金.感谢大家!

cocoa objective-c

8
推荐指数
1
解决办法
2932
查看次数

Objective-C属性赋值返回赋值?

说我有以下内容:

@interface MyClass : NSObject { NSString* _foobar; }
@property (nonatomic, retain) NSString* foobar;
@end

@implementation MyClass
@dynamic foobar;
- (void) setFoobar:(NSString*)fbSet; { [_foobar release]; _foobar = [fbSet retain]; }
- (NSString*) foobar; { return _foobar; }
@end
Run Code Online (Sandbox Code Playgroud)

然后:

MyClass* mcInst = [[[MyClass alloc] init] autorelease];
NSLog(@"I set 'foobar' to '%@'", (mcInst.foobar = @"BAZ!"));
Run Code Online (Sandbox Code Playgroud)

查看返回值-[MyClass setFoobar:],可以假设此行将打印I set 'foobar' to '',因为赋值似乎不返回任何内容.

但是 - 幸运的是 - 这个赋值按预期运行,代码打印出来I set 'foobar' to 'BAZ!'.不幸的是,这感觉就像一个矛盾,因为调用的setter的返回值掩盖了赋值返回赋给它的值的事实.起初我认为这mcInst.foobar = @"BAZ!";是两个调用而不是一个块:首先是setter,然后是getter来收集返回值.但是,通过NSLog …

compiler-construction gcc objective-c objective-c-runtime

6
推荐指数
1
解决办法
1359
查看次数