我希望UITextField有多行,在这个问题上快速谷歌之后我发现我应该使用TextView,所以当我需要多行时,我确实切换了我的代码以使用UITextView。我的视图仍然有其他一行textField我想保留。
为了使我的TextView看起来像TextField,我不得不添加代码来设置边框和半径,但它们在iOS7上看起来有点不同。有谁知道:
如果要继续使用文本字段进行多行文字处理,我会全神贯注地切换使用它。
最诚挚的问候,
答案 0 :(得分:7)
我用这个:
textView.layer.borderColor = [[UIColor colorWithRed:215.0 / 255.0 green:215.0 / 255.0 blue:215.0 / 255.0 alpha:1] CGColor];
textView.layer.borderWidth = 0.6f;
textView.layer.cornerRadius = 6.0f;
params的微小差异使它看起来更像UITextField(我希望)。
答案 1 :(得分:3)
我用这个:
#import <QuartzCore/QuartzCore.h>
-(void) textViewLikeTextField:(UITextView*)textView
{
[textView.layer setBorderColor:[[UIColor colorWithRed:212.0/255.0
green:212.0/255.0
blue:212.0/255.0
alpha:1] CGColor]];
[textView.layer setBorderWidth:1.0f];
[textView.layer setCornerRadius:7.0f];
[textView.layer setMasksToBounds:YES];
}
并得到一个好的结果。
答案 2 :(得分:0)
我有一个UITextView的小子类,它在iOS 7中提供与UITextField相同的外观
界面为空:
@interface MyTextView : UITextView
@end
该实现将覆盖'editable'属性的初始化和setter:
@implementation MyTextView
//================================================================================
- (id) initWithFrame: (CGRect) frame
{
self = [super initWithFrame:frame];
if (self)
{
[self commonInit];
}
return self;
}
//================================================================================
- (id) initWithCoder: (NSCoder *) aDecoder
{
self = [super initWithCoder:aDecoder];
if (self)
{
[self commonInit];
}
return self;
}
//================================================================================
- (void) commonInit
{
self.layer.borderWidth = 1.0f;
self.layer.borderColor = [[UIColor colorWithRed:232.0/255.0
green:232.0/255.0 blue:232.0/255.0 alpha:1] CGColor];
self.layer.cornerRadius = 6;
}
//================================================================================
- (void) setEditable: (BOOL) editable
{
[super setEditable:editable];
if (editable)
{
self.backgroundColor = [UIColor whiteColor];
}
else
{
self.backgroundColor = [UIColor colorWithRed:250.0/255.0
green:250.0/255.0 blue:250.0/255.0 alpha:1];
}
}
//================================================================================
@end
答案 3 :(得分:0)
这是我用UITextView启用的最接近的
[yourTextView.layer setBorderColor:[[[UIColor lightGrayColor] colorWithAlphaComponent:0.2] CGColor]];
[yourTextView.layer setBorderWidth:2.0];
yourTextView.layer.cornerRadius = 5;
yourTextView.clipsToBounds = YES;
yourTextView.textColor = [UIColor lightGrayColor];