UIView yuvarlaq küncləri təmin edir

Brauzerimdə UIActivityViewUILabel "İmzalamaq ..." sözləri olan bir alt kateqoriyası var. Yuvarlaqlaşdırılmayan bu subzondakı guşələr var. Necə onları dəyişdirə bilərəm?

Xibimin içində bunu etmək üçün bir yol varmı?

535
02 окт. 02 oktyabr. 2009-10-02 16:36 '09 saat 16:36 'da 2009-10-02 16:36
@ 20 cavab

Bunu sınayın

 #import <QuartzCore/QuartzCore.h> // not necessary for 10 years now :) 

...

 view.layer.cornerRadius = 5; view.layer.masksToBounds = true; 

Qeyd Yuvarlak küncləri UIViewController tətbiq etməyə çalışırsınızsa, görünüşü nəzarətçi konstruktorunda istifadə etməli deyilsiniz, əksinə view -viewDidLoad sonra -viewDidLoad .

1169
02 окт. Cavab Ed Marty 02 oktyabr tərəfindən verilir . 2009-10-02 16:40 '09 at 16:40 'da 2009-10-02 16:40

Siz də layer.cornerRadius açarının yolunu layer.cornerRadius təyin etmək üçün Runtime Attributes interfeysinin tərtibatçıının istifadəçi müəyyən xüsusiyyətlərini istifadə edə bilərsiniz. QuartzCore kitabxanasını daxil etdiyinizə əmin olun.

Bu hiylə də layer.borderWidth qurmaq üçün çalışır, lakin CGColor bir UIColor deyil gözlədiyi kimi, bu layer.borderColor üçün layer.borderColor .

border=0

Bu parametrlər run vaxtında qiymətləndirilir, çünki storyboard təsirləri görə bilməz.

2019

251
16 июля '12 в 1:17 2012-07-16 01:17 Cavab Gujamin tərəfindən 16 iyul '12 saat 01:17 'da verilir 2012-07-16 01:17

İndi UIView (şəkil altındakı kod) istifadə edə bilərsiniz. @IBQəbul edə bilər, nəticəni sona çatdırmaq üçün istifadə edə bilərsiniz (bir kateqoriya istifadə edərsən, yalnız kvadratRadius istifadə, əsas yol kimi layer.cornerRadius).

 extension UIView { @IBInspectable var cornerRadius: CGFloat { get { return layer.cornerRadius } set { layer.cornerRadius = newValue layer.masksToBounds = newValue > 0 } } } 

2019

58
16 янв. cavab Guilherme Torres Castro tərəfindən verilir 16 Yanvar. 2014-01-16 19:26 '14 at 19:26 2014-01-16 19:26

Bir Ed Marty'den fərqli bir yanaşma:

 #import <QuartzCore/QuartzCore.h> [v.layer setCornerRadius:25.0f]; [v.layer setMasksToBounds:YES]; 

IB-dən bütün obyektlərin yüklənməsi üçün setMasksToBounds lazımdır ... Görünüşüm yuvarlaqlaşdırıldığında problemim vardı, lakin IB-dən heç bir obyekt yox idi: /

bu sabitdir. = D bu kömək edir!

43
09 дек. Kristian Flatheim Jensen tərəfindən verilmiş cavab 09 Dek 2010-12-09 15:23 '10 at 15:23 2010-12-09 15:23

Swift

Qısa cavab:

 myView.layer.cornerRadius = 8 myView.layer.masksToBounds = true // optional 

Əlavə cavab

Bu cavana gəlsəniz, yəqin ki, probleminizi həll etmək üçün kifayət qədər gördünüz. Hər kəsin nə etdiklərini niyə bir az daha görmə izahı vermək üçün bu cavabı əlavə edirəm.

Normal bir UIView ilə başlasanız, kvadrat küncləri var.

 let blueView = UIView() blueView.frame = CGRect(x: 100, y: 100, width: 100, height: 50) blueView.backgroundColor = UIColor.blueColor() view.addSubview(blueView) 

2019

25 янв. Cavab 25 Yanvarda Suragch tərəfindən verilir . 2016-01-25 04:07 '16 'da 4:07' də 2016-01-25 04:07 'də

Bu blog yazısında təsvir edildiyi kimi, burada bir UIView köşelerini dəyişdirmək üçün bir yoldur:

 +(void)roundView:(UIView *)view onCorner:(UIRectCorner)rectCorner radius:(float)radius { UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:view.bounds byRoundingCorners:rectCorner cornerRadii:CGSizeMake(radius, radius)]; CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init]; maskLayer.frame = view.bounds; maskLayer.path = maskPath.CGPath; [view.layer setMask:maskLayer]; [maskLayer release]; } 

Bununla əlaqədar olan sərin hissələr, hansı guşələrin dəyirmi istədiyini seçə bilərsiniz.

26
10 сент. cavab verildi pabloruiz55 sentyabr 10 2012-09-10 14:09 '12 at 2:09 pm 2012-09-10 14:09

İlk olaraq <QuartzCore/QuartzCore.h> üstbilgi faylını idxal <QuartzCore/QuartzCore.h>

  #import QuartzCore/QuartzCore.h> [yourView.layer setCornerRadius:8.0f]; yourView.layer.borderColor = [UIColor redColor].CGColor; yourView.layer.borderWidth = 2.0f; [yourView.layer setMasksToBounds:YES]; 

- setMasksToBounds istifadə setMasksToBounds , aksi təsiri nümayiş etdirə bilər.

19
01 авг. Cavab Samir Jwarchan 01 avqustda verilir . 2012-08-01 13:19 '12 at 13:19 2012-08-01 13:19

Sərhədin rəngini və genişliyini dəyişə bilən aşağıdakı xüsusi UIView sinifindən istifadə edə bilərsiniz. Bu IBDesignalbe olduğundan, interfeys dizaynında da atributları dəyişə bilərsiniz.

2019

26 окт. cavab Vakas 26 oktyabr verilir . 2016-10-26 11:31 '16 'da saat 11:31' də 2016-10-26 11:31
 UIView *view = [[UIView alloc] initWithFrame:CGRectMake(20, 50, 200, 200)]; view.layer.backgroundColor = [UIColor whiteColor].CGColor; view.layer.cornerRadius = 20.0; view.layer.frame = CGRectInset(v.layer.frame, 20, 20); view.layer.shadowOffset = CGSizeMake(1, 0); view.layer.shadowColor = [[UIColor blackColor] CGColor]; view.layer.shadowRadius = 5; view.layer.shadowOpacity = .25; [self.view addSubview:view]; [view release]; 
6
23 мая '12 в 14:51 2012-05-23 14:51 cavab 23 may 2012 tarixində saat 14:51 'da Jorik tərəfindən verilir. 2012-05-23 14:51
 view.layer.cornerRadius = 25 view.layer.masksToBounds = true 
3
16 апр. Cavab Parth Barot 16 apr tərəfindən verilir . 2018-04-16 15:10 '18 saat 03:10 'da 2018-04-16 15:10

Xahiş edirik Quartzcore framework idxal edin, sonra setMaskToBounds ni bu çox əhəmiyyətli xətt üçün TRUE olaraq təyin setMaskToBounds .

Sonra: [[yourView layer] setCornerRadius:5.0f];

2
16 февр. Cavab 16 fevralda DeveshM tərəfindən verilir. 2013-02-16 12:52 '13 at 12:52 2013-02-16 12:52
 UIView* viewWithRoundedCornersSize(float cornerRadius,UIView * original) { // Create a white border with defined width original.layer.borderColor = [UIColor yellowColor].CGColor; original.layer.borderWidth = 1.5; // Set image corner radius original.layer.cornerRadius =cornerRadius; // To enable corners to be "clipped" [original setClipsToBounds:YES]; return original; } 
2
02 сент. Cavab Ashish Patel tərəfindən verilib 02 Sep. 2014-09-02 10:48 '14 at 10:48 2014-09-02 10:48

Swift 4 - IBDesignable istifadə

  @IBDesignable class DesignableView: UIView { } extension UIView { @IBInspectable var cornerRadius: CGFloat { get { return layer.cornerRadius } set { layer.cornerRadius = newValue } } } 
2
24 окт. Cavab verildi Saranjith 24 oct . 2017-10-24 07:34 '17 də 7:34 'da 2017-10-24 07:34

Objdə proqramlı olaraq bunu edin

 UIView *view = [[UIView alloc] initWithFrame:CGRectMake(20, 50, 200, 200)]; view.layer.backgroundColor = [UIColor whiteColor].CGColor; view.layer.cornerRadius = 20.0; view.layer.frame = CGRectInset(v.layer.frame, 20, 20); [view.layer.shadowOffset = CGSizeMake(1, 0); view.layer.shadowColor = [[UIColor blackColor] CGColor]; view.layer.shadowRadius = 5; view.layer.shadowOpacity = .25;][1] [self.view addSubview:view]; 

Bunu da bir masadan edə bilərik.

  layer.cornerRadius Number 5 

2019

09 февр. Cavab Vikas Rajput tərəfindən verilir 09 fevral. 2017-02-09 12:19 '17 at 12:19 2017-02-09 12:19

dəyirmi küncdə viewDidload () işləmədiyi halda, viewDidLayoutSubview () kodunu yazmaq daha yaxşıdır

 -(void)viewDidLayoutSubviews { viewTextfield.layer.cornerRadius = 10.0 ; viewTextfield.layer.borderWidth = 1.0f; viewTextfield.layer.masksToBounds = YES; viewTextfield.layer.shadowRadius = 5; viewTextfield.layer.shadowOpacity = 0.3; viewTextfield.clipsToBounds = NO; viewTextfield.layer.shadowOffset = CGSizeMake(0.0f, 0.0f); } 

Bu kömək edir!

1
21 апр. Cavab Dharmesh Mansata tərəfindən verilir 21 Apr. 2018-04-21 09:22 '18 'də saat 9.22' də 2018-04-21 09:22 'də

Bir görüntüyü də istifadə edə bilərsiniz:

 UIImage *maskingImage = [UIImage imageNamed:@"bannerBarBottomMask.png"]; CALayer *maskingLayer = [CALayer layer]; maskingLayer.frame = CGRectMake(-(self.yourView.frame.size.width - self.yourView.frame.size.width) / 2 , 0 , maskingImage.size.width , maskingImage.size.height); [maskingLayer setContents:(id)[maskingImage CGImage]]; [self.yourView.layer setMask:maskingLayer]; 
0
24 янв. Cavab 24 yanvar zəngin tərəfindən verilir 2013-01-24 09:59 '13 saat 09:59 'da 2013-01-24 09:59

Swift 4.2 və Xcode 10.1-də

 let myView = UIView() myView.frame = CGRect(x: 200, y: 200, width: 200, height: 200) myView.myViewCorners() //myView.myViewCorners(width: myView.frame.width)//Pass View width view.addSubview(myView) extension UIView { //If you want only round corners func myViewCorners() { layer.cornerRadius = 10 layer.borderWidth = 1.0 layer.borderColor = UIColor.red.cgColor layer.masksToBounds = true } //If you want complete round shape func myViewCorners(width:CGFloat) { layer.cornerRadius = width/2 layer.borderWidth = 1.0 layer.borderColor = UIColor.red.cgColor layer.masksToBounds = true } } 
0
01 февр. cavab iOS-da verilir 01 Fevral. 2019-02-01 12:59 '19 'da saat 12:59 ' da 2019-02-01 12:59

Yuvarlaq görünüş üçün kvadratRadious əmlakı seçin

set masksToBounds Şəkil üçün məntiqi dəyər hələ künc radiusunun kənarında çıxmayacaq.

 view.layer.cornerRadius = 5; view.layer.masksToBounds = YES; 
0
29 дек. Cavab bhautikmewada191 29 dekabr verilir. 2014-12-29 14:29 '15 at 14:29 2014-12-29 14:29

UIView uzantısını istifadə edərək:

 extension UIView { func addRoundedCornerToView(targetView : UIView?) { //UIView Corner Radius targetView!.layer.cornerRadius = 5.0; targetView!.layer.masksToBounds = true //UIView Set up boarder targetView!.layer.borderColor = UIColor.yellowColor().CGColor; targetView!.layer.borderWidth = 3.0; //UIView Drop shadow targetView!.layer.shadowColor = UIColor.darkGrayColor().CGColor; targetView!.layer.shadowOffset = CGSizeMake(2.0, 2.0) targetView!.layer.shadowOpacity = 1.0 } } 

İstifadə edin:

 override func viewWillAppear(animated: Bool) { sampleView.addRoundedCornerToView(statusBarView) } 
-1
11 мая '16 в 9:24 2016-05-11 09:24 Cavab 11 May 'da, 16 Mart tarixində saat 9: 00-da 2016-05-11 09:24 tarixində verilir

Xcode 6 haqqında

  self.layer.layer.cornerRadius = 5.0f; 

və ya

  self.layer.layer.cornerRadius = 5.0f; self.layer.clipsToBounds = YES; 
-4
28 нояб. cavab 28 noyabr tarixində Saringxan Vungsin tərəfindən verilmişdir. 2014-11-28 15:42 '14 də 15:42 2014-11-28 15:42

bağlı digər suallar və ya bir sual