我制作了一个iPad应用程序,因为我有tableView,其名称为crollTableView,在我的tableView中,我在行的每个单元格中创建了两个标签,其名称为capitalLabel和stateLabel,处于纵向模式,
现在我想在横向模式下增加标签的宽度,
这是代码段,
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if(tableView==crollTableView){
static NSString *CellIdentifier=@"Cell";
static NSInteger StateTag = 1;
static NSInteger CapitalTag = 2;
UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if(cell == nil){
// cell.backgroundColor=[UIColor yellowColor];
cell=[[[UITableViewCell alloc]initWithFrame:CGRectZero reuseIdentifier:CellIdentifier]autorelease];
CGRect frame;
frame.origin.x = 0;
frame.origin.y = 0;
frame.size.height = 70;
frame.size.width = 650;
UILabel *capitalLabel = [[UILabel alloc] initWithFrame:frame];
capitalLabel.tag = CapitalTag;
capitalLabel.opaque = FALSE;
capitalLabel.font=[UIFont systemFontOfSize:20.0];
[cell.contentView addSubview:capitalLabel];
frame.origin.x += 680;
UILabel *stateLabel = [[UILabel alloc] initWithFrame:frame];
stateLabel.tag = StateTag;
stateLabel.font=[UIFont systemFontOfSize:17.0];
[cell.contentView addSubview:stateLabel];
}
UILabel* capitalLabel = (UILabel *) [cell.contentView viewWithTag:CapitalTag];
UILabel* stateLabel = (UILabel *) [cell.contentView viewWithTag:StateTag];
capitalLabel.text=[news2 objectAtIndex:indexPath.row];
stateLabel.text = [news3 objectAtIndex:indexPath.row];
capitalLabel.backgroundColor = [UIColor clearColor];
stateLabel.backgroundColor = [UIColor clearColor];
capitalLabel.textColor=[UIColor whiteColor];
stateLabel.textColor=[UIColor whiteColor];
if(count<[news3 count]){
capitalLabel.numberOfLines = 0;
[capitalLabel sizeToFit];
stateLabel.numberOfLines = 0;
[stateLabel sizeToFit];
}count++;
return cell;
}
}
我的代码应该做些什么更改?
答案 0 :(得分:1)
你应该覆盖
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations.
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
通过检查当前方向是横向还是纵向的条件,您可以相应地设置标签框。
答案 1 :(得分:1)
尝试将autoresizingMask
设置为您要自动缩放的视图:
在if (cell == nil)
标签之后alloc+init
添加:
capitalLabel.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
stateLabel.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
答案 2 :(得分:1)
不关心在更改方向时增加任何控件的宽度。只需将2个标签的自动调整遮罩属性设置为 UIViewAutoresizingFlexibleWidth ..这意味着控件的宽度将根据超视图框架大小进行更改。
答案 3 :(得分:0)
尝试设置autoResizingMask
,以便在方向更改期间视图会自动调整。
您可以更改Xcode
尺寸检查器中的值。