0

コレクション ビューの例をダウンロードし、ImageView をテキスト フィールドに置き換えました。テキストフィールドを UICollectionViewCell (正方形) と同じ大きさにしたい。しかし、テキストフィールドの形状は変わりませんでした。

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
    static NSString *identifier = @"Cell";

    UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:identifier forIndexPath:indexPath];

    // height and width in the parent cell 
    double height = cell.frame.size.height;
    double width = cell.frame.size.width;

    // get the child textfield
    UITextField *textField = (UITextField *)[cell viewWithTag:100];

    // make the textfield as big as the cell
    CGRect frame = CGRectMake(0, 0, width, height);
    textField.frame =frame;
    textField.text = @"testing";

    return cell;
}

絵コンテとシミュレーター

4

4 に答える 4

0

UITextField の境界線スタイルを変更することでそれを行うことができます。

この Stackoverflow の投稿を参照してください: UITextfield の境界線スタイルを設定する方法

于 2013-03-15T09:50:03.323 に答える
0

この問題の根本原因を突き止めました。根本的な原因は自動レイアウトです。実行時にセルとテキストフィールドの間の幅、高さ、およびスペースのサイズが変更されます。自動レイアウトを削除すると、コードは正常に機能します...そして、境界線のスタイルは問題ではありません。

この問題を解決する別の方法を探しています。

于 2013-03-15T10:19:24.887 に答える
0

XCode Designer で UITextfield の Tag を 100 に設定していますか? UITextfield が確実に見つかるように、コードを呼び出す前に Tag を 100 に設定する必要があります。

すべての Borderstyle でそれを行うことができるので、Border Style を変更する必要はありません。

XCode Designer で cellItem Nib に移動し、UITextField を選択し、適切なプロパティでタグを 100 に変更します...これで解決します

于 2013-03-15T09:55:58.623 に答える
0

これを試してみてください..

NSInteger myCustomHeight = 237;
UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(10, 10, 200, myCustomHeight)];
于 2013-03-15T10:33:56.733 に答える