1

コードで作成した TextView があります。

CGRect textFrame = CGRectMake(5, 20, 300, 50);

UITextView *textView = [[UITextView alloc] initWithFrame:textFrame];

問題は、ランドスケープモードが呼び出されたときにサイズを変更したいということです。

ここではいくつかの例を示します。

https://docs.google.com/file/d/0BzsX_FHtJa9nSjRVamtFX1pjdlE/edit?usp=sharing

https://docs.google.com/file/d/0BzsX_FHtJa9nU0U5T3JvZkgzZWc/edit?usp=sharing

ありがとう

PS: これは iPhone 専用です。iPad の実装はありません。

編集:

TableView コード:

tableProducts.dataSource = self;
tableProducts.delegate = self;
tableProducts.bounces = YES;

セル コード:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableProducts dequeueReusableCellWithIdentifier:CellIdentifier];
if(cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
    cell.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;        
}

/* ------ Product title in RED ------*/

CGRect titleFrame = CGRectMake(5, 5, 250, 15);
UILabel *productTitle = [[UILabel alloc] initWithFrame:titleFrame];
productTitle.font = [UIFont boldSystemFontOfSize:14];
productTitle.textColor = [UIColor redColor];
productTitle.text = [listProducts objectAtIndex:indexPath.row];

[cell.contentView addSubview:productTitle];

/* ------ Product title in RED ------*/

/* ------ Product Text ------*/

CGRect textFrame = CGRectMake(5, 20, 300, 50);
UITextView *textView = [[UITextView alloc] initWithFrame:textFrame];
textView.textColor = [UIColor blackColor];
textView.font = [UIFont boldSystemFontOfSize:11.5];
textView.text = [listTexts objectAtIndex:indexPath.row];
textView.scrollEnabled = NO;
textView.editable = NO;

[cell.contentView addSubview:textView];

/* ------ Product Text ------*/

return cell;
}
4

2 に答える 2

1

向きを変えるたびにフレームを変更するだけです。shouldAutoRotateに対してyesを返し、willAnimateRotationで次のようにします。

-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    if(UIInterfaceOrientationIsLandscape(toInterfaceOrientation))
    {
       textView.frame = CGRectMake(x,y,width,height)//whatever values you want for landscape
    }
    else
    {
       textView.frame = CGRectMake(x,y,width,height)//whatever values you want for portrait
    }
}
于 2013-02-07T22:48:46.027 に答える
1

テキストの自動サイズ変更マスクを設定します

 textview.autoresizingMask = UIViewAutoresizingFlexibleWidth;
于 2013-02-07T22:26:41.843 に答える