正如标题所说:我创建一个空的UIView子类,并为其添加一个子视图,我创建一个空的layoutSubviews方法,然后在那里添加一个断点.然后我构建项目,并在layoutSubviews方法中加载视图时停止模拟.到目前为止一切都很好.我继续模拟并旋转设备(假设视图控制器设置为允许任何方向)但是layoutSubviews永远不会再次调用,尽管我可以看到我的对象是如何旋转的.任何的想法?
好的,我将简化我的问题:如何使用一些子视图创建自定义UIView并使其响应设备方向?我不需要使用drawRect或任何东西,只需子类UIView,添加几个子视图并在设备旋转时处理它们.
我正在研究一个来自UIView的子类的组件,它包含一个UIScrollView.滚动时,我注意到了不同的行为,具体取决于我构建的SDK.在iOS 4上,layoutSubviews消息在滚动视图的superview(这是我的组件)上发送,但在iOS 5上,似乎消息不再发送...
在看了iOS 5发行说明和更改日志后,我没有发现任何提及这种变化的内容.我错过了什么吗?
当我使用带有类别的UItableViewcell的layoutSubviews方法时,就像下面的代码一样
@implementation UITableViewCell (forimage)
- (void)layoutSubviews{
[super layoutSubviews];
self.imageView.frame = CGRectMake(0, 0, 50, 50);
}
@end
Run Code Online (Sandbox Code Playgroud)
当我使用下面的代码绘制单元格时,textLabel消失了,任何人都知道为什么会这样〜,这是否意味着如果我使用layoutSubviews,我必须在方法中写下我需要的所有子视图?
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
RadioInfo *radioinfo = [radios objectAtIndex:indexPath.row];
cell.textLabel.text = [NSString stringWithFormat:@"%@",radioinfo._name];
if(!radioinfo._logo){
if(self.tableView.dragging == NO && self.tableView.decelerating == NO){
[self startPicDownload:radioinfo forIndexPath:indexPath];
}
cell.imageView.image = [UIImage imageNamed:@"1.jpg"];
}
else {
cell.imageView.image = radioinfo._logo; …
Run Code Online (Sandbox Code Playgroud) 我drawRect:
用来画形状。我必须调用此方法并在方向改变时重新绘制形状,因此我认为是否有一种方法可以在调用时drawRect:
自动layoutSubviews()
调用。
谢谢。
ios ×2
uiview ×2
drawrect ×1
iphone ×1
objective-c ×1
rotation ×1
uiscrollview ×1
uitableview ×1