ฉันต้องการมีขอบสีเทาบาง ๆ รอบ ๆ a UITextView
. ฉันอ่านเอกสารของ Apple แล้ว แต่ไม่พบทรัพย์สินที่นั่นเลย กรุณาช่วย.
ฉันต้องการมีขอบสีเทาบาง ๆ รอบ ๆ a UITextView
. ฉันอ่านเอกสารของ Apple แล้ว แต่ไม่พบทรัพย์สินที่นั่นเลย กรุณาช่วย.
คำตอบ:
#import <QuartzCore/QuartzCore.h>
....
// typically inside of the -(void) viewDidLoad method
self.yourUITextView.layer.borderWidth = 5.0f;
self.yourUITextView.layer.borderColor = [[UIColor grayColor] CGColor];
self.myView.layer.borderWidth ...
แต่อย่างที่บอกว่าเลเยอร์เป็นแบบอ่านอย่างเดียวดังนั้นเลเยอร์จึงไม่มีวิธีการหรือตัวแปรให้ตั้งค่า
เพิ่มสิ่งต่อไปนี้สำหรับมุมโค้งมน:
self.yourUITextview.layer.cornerRadius = 8;
นี่คือรหัสที่ฉันใช้เพื่อเพิ่มเส้นขอบรอบตัวTextView
ควบคุมที่ชื่อ "tbComments":
self.tbComments.layer.borderColor = [[UIColor grayColor] CGColor];
self.tbComments.layer.borderWidth = 1.0;
self.tbComments.layer.cornerRadius = 8;
และนี่คือสิ่งที่ดูเหมือน:
peasy ง่าย
ฉันเพิ่มUIImageView
เป็นมุมมองย่อยของไฟล์UITextView
. สิ่งนี้ตรงกับเส้นขอบดั้งเดิมบน a UITextField
รวมถึงการไล่ระดับสีจากบนลงล่าง:
textView.backgroundColor = [UIColor clearColor];
UIImageView *borderView = [[UIImageView alloc] initWithFrame: CGRectMake(0, 0, textView.frame.size.width, textView.frame.size.height)];
borderView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
UIImage *textFieldImage = [[UIImage imageNamed:@"TextField.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(15, 8, 15, 8)];
borderView.image = textFieldImage;
[textField addSubview: borderView];
[textField sendSubviewToBack: borderView];
นี่คือภาพ png ที่ฉันใช้และเป็นตัวแทนของ jpg:
code
resizableImageWithCapInsets: UIEdgeInsetsMake (28, 14, 28, 14)
ใช้งานได้ดี แต่สีควรเป็น a CGColor
ไม่ใช่UIColor
:
view.layer.borderWidth = 5.0f;
view.layer.borderColor = [[UIColor grayColor] CGColor];
ฉันเชื่อว่าคำตอบข้างต้นมีไว้สำหรับ Swift เวอร์ชันก่อนหน้า ฉัน Googled เล็กน้อยและโค้ดด้านล่างใช้ได้กับ Swift 4 เพียงแค่แบ่งปันเพื่อใครก็ตามที่อาจได้รับประโยชน์
self.textViewName.layer.borderColor = UIColor.lightGray.cgColor
self.textViewName.layer.borderWidth = 1.0
self.textViewName.layer.cornerRadius = 8
Happy Coding!
self.textViewName.layer.borderColor = UIColor.systemGray4.cgColor
สำหรับ Swift Programming ให้ใช้สิ่งนี้
tv_comment.layer.borderWidth = 2
tv_comment.layer.borderColor = UIColor(red: 0.2, green: 0.2, blue: 0.2, alpha: 1).CGColor
UIColor(white: 0.2, alpha: 1).CGColor
นี่ใกล้เคียงที่สุดเท่าที่จะทำได้จาก UITextField ดั้งเดิม
func updateBodyTextViewUI() {
let borderColor = UIColor.init(red: 212/255, green: 212/255, blue: 212/255, alpha: 0.5)
self.bodyTextView.layer.borderColor = borderColor.CGColor
self.bodyTextView.layer.borderWidth = 0.8
self.bodyTextView.layer.cornerRadius = 5
}
คุณสามารถเพิ่มเส้นขอบให้กับ UITextView จาก Storyboard - Identity Inspector - User Defined Runtime Attribute
สำหรับ iOS 8 และ Xcode 6 ตอนนี้ฉันพบทางออกที่ดีที่สุดคือซับคลาส UITextView และทำเครื่องหมายคลาสย่อยเป็น IB_DESIGNABLE ซึ่งจะช่วยให้คุณดูเส้นขอบในสตอรีบอร์ดได้
หัวข้อ:
#import <UIKit/UIKit.h>
IB_DESIGNABLE
@interface BorderTextView : UITextView
@end
การดำเนินงาน:
#import "BorderTextView.h"
@implementation BorderTextView
- (void)drawRect:(CGRect)rect
{
self.layer.borderWidth = 1.0;
self.layer.borderColor = [UIColor blackColor].CGColor;
self.layer.cornerRadius = 5.0f;
}
@end
จากนั้นลาก UITextView ของคุณในสตอรีบอร์ดและตั้งค่าคลาสเป็น BorderTextView
สิ่งที่ทำให้มันใช้งานได้ (นอกเหนือจากการทำตามคำตอบที่นี่) คือการเพิ่มborderStyle
แอตทริบิวต์:
#import <QuartzCore/QuartzCore.h>
..
phoneTextField.layer.borderWidth = 1.0f;
phoneTextField.layer.borderColor = [[UIColor blueColor] CGColor];
phoneTextField.borderStyle = UITextBorderStyleNone;
เพิ่มเพียงเล็กน้อย หากคุณทำให้เส้นขอบกว้างขึ้นเล็กน้อยขอบจะรบกวนด้านซ้ายและขวาของข้อความ เพื่อหลีกเลี่ยงสิ่งนั้นฉันได้เพิ่มบรรทัดต่อไปนี้:
self.someTextView.textContainerInset = UIEdgeInsetsMake(8.0, 8.0, 8.0, 8.0);
ใน Swift 3 คุณสามารถใช้สองบรรทัดต่อไปนี้:
myText.layer.borderColor = UIColor.lightGray.cgColor
myText.layer.borderWidth = 1.0
ฉันแก้ไขปัญหานี้ในสตอรีบอร์ดโดยวางปิดการใช้งานอย่างสมบูรณ์UIButton
ไว้ด้านหลังUITextView
และสร้างสีพื้นหลังของUITextView
clearColor ใช้งานได้โดยไม่ต้องใช้รหัสหรือแพ็คเกจเพิ่มเติม